TableViewer 如何为具有编辑支持的单元格设置插入符号位置并删除 FULL_SELECTION
TableViewer how to set caret position for the cell with Editing Support and remove FULL_SELECTION
我有一个 TableViewer,它的最后一列有 EditingSupport 来编辑单元格的值。查看器的样式设置为 FULL_SELECTION。
单击单元格后,文本值将完全 selected:
我可以开始编辑,它会清除当前值"max value"
并开始新值。
但是,如果我想将鼠标移动到特定位置进行编辑,我需要延迟一秒左右。如果我在第一次点击 select 后点击得太快,单元格将被删除 select。
有什么办法可以避免吗?我可以让单元格不完全 selected 吗?还是始终将插入符放在文本末尾?谢谢!
我假设您正在使用 TextCellEditor
作为单元格编辑器。
创建您自己的 class 扩展 TextCellEditor
并覆盖 doSetFocus
class 如下:
@Override
protected void doSetFocus()
{
super.doSetFocus();
if (text != null) {
text.setSelection(0, 0);
}
}
要删除全选并将插入符号设置为文本末尾,请覆盖 doSetFocus
并设置 text.setSelection( text.getText().length() );
要忽略双击事件,将 getDoubleClickTimeout
覆盖为 return 0
我有一个 TableViewer,它的最后一列有 EditingSupport 来编辑单元格的值。查看器的样式设置为 FULL_SELECTION。 单击单元格后,文本值将完全 selected:
我可以开始编辑,它会清除当前值"max value"
并开始新值。
但是,如果我想将鼠标移动到特定位置进行编辑,我需要延迟一秒左右。如果我在第一次点击 select 后点击得太快,单元格将被删除 select。
有什么办法可以避免吗?我可以让单元格不完全 selected 吗?还是始终将插入符放在文本末尾?谢谢!
我假设您正在使用 TextCellEditor
作为单元格编辑器。
创建您自己的 class 扩展 TextCellEditor
并覆盖 doSetFocus
class 如下:
@Override
protected void doSetFocus()
{
super.doSetFocus();
if (text != null) {
text.setSelection(0, 0);
}
}
要删除全选并将插入符号设置为文本末尾,请覆盖 doSetFocus
并设置 text.setSelection( text.getText().length() );
要忽略双击事件,将 getDoubleClickTimeout
覆盖为 return 0