Found this old thread, and thought it worth commenting.
I took a variant of Ralf's approach in an effort to get tabbing/enter key movement to the next cell. In my recreation of EditTextCell, I revised the commit method:
private void commit(Context context, final Element parent, ViewData viewData,
ValueUpdater<String> valueUpdater)
{
String value = updateViewData(parent, viewData, false);
clearInput(getInputElement(parent));
setValue(context, parent, viewData.getOriginal());
if (valueUpdater != null)
{
valueUpdater.update(value);
}
Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand() {
@Override
public void execute()
{
NativeEvent clickEvent = Document.get().createClickEvent(1, 0, 0, 0, 0, false, false, false, false);
Element td = parent.getParentElement();
Element nextTd = td.getNextSiblingElement();
if (nextTd != null){
nextTd.dispatchEvent(clickEvent);
}
}
});
}
It seems to work, and has the benefit that I don't need to extend or rewrite every possible editable cell type.
But, I don't know if there are any pitfalls that I've missed, other than it won't jump over a non-editable column to the subsequent editable column, and it won't jump to the next row.
Steve