>From the CellTableExample in the API: http://google-web-toolkit.googlecode.com/svn/javadoc/2.1/com/google/gwt/user/cellview/client/CellTable.html
I customized it slightly to implement tab order. However, tabbing does not work because table.redraw in nameColumn.setFieldUpdater steals focus away. If I don't edit the field and just click on the TextInputCell, tabbing works. If i comment out the table.redraw, tabbing works after I have edited a field but my other fields don't update. After editing a field , a change event is fired in onBrowser method. This eventually calls finishediting which then calls the update method in the column.fieldUpdater. In the update method is where the table.redraw is located I have also tried keeping my list of objects in the ListDataProvider and calling ListDataProvider.refresh but I have the same issue. Question) How can I implement tab order and allow tabbing after editing but still be able to refresh the Celltable grid. I need to redraw/ refresh the grid because after tabbing I need to update data in the other columns. The customization that i needed to do was : 1) Extend TextInputCell and override render methods so that I can set a tabindex by customizing template.input (see below code) 2) In CellTableExample, I disabled KeyboardSelectionPolicy table.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.DISABLED); ============== inheriting TextInputCell ======================================= public class EditableTextCell extends TextInputCell { private static final Logger logger = Logger.getLogger(EditableTextCell.class.getName()); private SimpleTemplate template; protected SafeHtmlRenderer<String> renderer; private boolean inline; interface SimpleTemplate extends SafeHtmlTemplates { @Template("<input value=\"{0}\" tabindex=\"{1}\"></input>") SafeHtml input( String value,int tabindex); } public EditableTextCell(EventBus eventBus, SafeHtmlRenderer<String> renderer, boolean inline) { super(renderer); this.renderer = renderer; template = GWT.create(SimpleTemplate.class); } public EditableTextCell() { } @Override public void render(Context context, String value, SafeHtmlBuilder sb) { Contact key = (Contact) context .getKey(); String name = key.getName(); // Get the view data. ViewData viewData = getViewData(key); if (viewData != null && viewData.getCurrentValue().equals(value)) { clearViewData(key); viewData = null; } String s = (viewData != null) ? viewData.getCurrentValue() : value; if (s != null ) { String style = ""; SafeHtml html = renderer.render(s); // Note: template will not treat SafeHtml specially sb.append(template.input( html.asString(), key.getId() )); } else { sb.appendHtmlConstant("<input type=\"text\" tabindex=\"-1\"></ input>"); } } @Override public void onBrowserEvent(Context context, Element parent, String value, NativeEvent event, ValueUpdater<String> valueUpdater){ String eventType = event.getType(); logger.fine("onBrowserEvent... " + eventType); super.onBrowserEvent(context,parent, value, event, valueUpdater); } -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.