TableViewer如何使用编辑支持设置单元格的插入位置并删除FULL_SELECTION

时间:2016-06-23 08:59:30

标签: java eclipse-rcp jface caret tablecelleditor

我有一个带有最后一列的TableViewer,它有EditingSupport来编辑单元格的值。查看器的样式设置为FULL_SELECTION。 单击单元格后,文本值将完全选中:

"max value" is fully selected

我可以开始编辑,它会清除当前值"max value"并开始新值。

但是,如果我想将鼠标移动到特定位置进行编辑,我需要延迟一秒左右。如果我在第一次单击选择后单击太快,将取消选择单元格。

有没有办法避免这种情况?我可以让电池没有完全被选中吗?或者总是把文字放在文本的末尾?谢谢!

2 个答案:

答案 0 :(得分:1)

我假设您使用TextCellEditor作为单元格编辑器。

创建自己的扩展TextCellEditor的类,并覆盖doSetFocus类,如下所示:

@Override
protected void doSetFocus()
{
  super.doSetFocus();

  if (text != null) {
     text.setSelection(0, 0);
   }
}

答案 1 :(得分:0)

删除完整选择并将插入符号设置为文本结尾,覆盖doSetFocus并设置text.setSelection( text.getText().length() );

忽略双击事件,将getDoubleClickTimeout覆盖为return 0