public void onDoubleClick(DoubleClickEvent e) {

    GPoint point = table.getIndexFromPixel(e.getClientX(), e.getClientY());

    if (point != null) {
      // auto-fill down if dragging dot is double-clicked
      if (table.isOverDot) {
        // TODO handleAutoFillDown();
        return;
      }

      // otherwise, doubleClick edits cell

      if (!(table.getOneClickEditMap().containsKey(point) && view.allowSpecialEditor())) {
        table.setAllowEditing(true);
        table.editCellAt(table.getSelectedRow() + 1, table.getSelectedColumn() + 1);

        // workaround, see
        // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4192625
        final AutoCompleteTextFieldW f = (AutoCompleteTextFieldW) table.getEditorWidget();
        if (f != null) {
          f.requestFocus();
          // ?//f.getCaret().setVisible(true);
        }

        table.setAllowEditing(false);
      }
    }
  }
  boolean stopCellEditing(int colOff, int rowOff, boolean editNext) {
    allowProcessGeo = true;
    boolean success = stopCellEditing();
    moveSelectedCell(colOff, rowOff);
    allowProcessGeo = false;
    table.finishEditing(editNext); // don't finish, we
    if (editNext) {
      table.setAllowEditing(true);
      table.editCellAt(row + rowOff, column + colOff);
      table.setAllowEditing(false);
      // this should be deferred so that browser cannot steal focus from
      // SS
      autoCompleteTextField.getTextField().setFocus(true);
    }

    return success;
  }