There were several issues regarding grid editing, so I waited for the beta release. Now I've tried to convert my GXT 2 application, but I've got the feeling this feature is not finished yet.
First of all: you removed the EditorGrid and added GridInlineEditing. I assume, you had your reason for doing so. There is no getter for the GridInlineEditing, though. So there is no way to add an editing event from outside (untill I define my own getter). It looks like "we can't know, whether or not the Grid is editable, so we just don't provide a getter". We would know that, if we still got the EditorGrid.
You also removed the ValidateEdit and AfterEdit events and added the following ones:
- BeforeStartEditEvent
- CancelEditEvent
- CompleteEditEvent
- StartEditEvent
I miss the rollback functionality, I achieved with the ValidateEdit event. How exactly can I prevent a cell from getting updated with the new value? The only possible event seems to be the CompleteEditEvent. But it seems like it's the AfterEdit equivalent - a GridInlineEditing.cancelEditing() has no effect. Why is a validation event missing? A workaround would be to save the value on the StartEditEvent and rollback it manually after..
Another issue: it's quite hard to get the current value. Assuming I want to get the currently typed text within the CompleteEditEvent, this looks like that:
Code:
@Override
public void onCompleteEdit(CompleteEditEvent<HumanAttributeValueDTO> event)
{
String currentString = event.getSource().getEditor(valuesTable.getColumnModel().getColumn(event.getEditCell().getCol())).getValue().toString();
}
The old "be.getValue().toString()" seems to be a more clear solution imho.
And how exactly can I force a cell editing? There is the GridInlineEditing.startEditing(GridCell) - but how can I get my desired cell (1,2)? Back in GXT 2 this was a simple EditorGrid.startEditing(1,2)..
So either it's just the lack of documentation (which is understable in this phase) - or the new grid editing functionality is not designed very well.