高效的編輯無疑於tab操作,給TableViewer加tab操作其實也不難,jface包下有現成的,我們只需要實現下就可以了,jface包下有個TableViewerEditor,專門處理表格編輯,因此我們用它就可以了,它裏面有個create(TableViewer viewer, ColumnViewerEditorActivationStrategy
editorActivationStrategy, int feature)方法,API是這樣描述這個方法的:Create a customized editor whose activation process is customized,創建一個自定義編輯器的激活過程是自定義的,激活過程就跟咱們的目標接近了,在TableViewer中咱們使用Tab操作無非就是激活下一個編輯列,它這裏說到了激活,就離咱們的目標不遠啦!
viewer :需要自定義激活過程的TableViewer
editorActivationStrategy: 激活策略,編輯器啓動纔有效
feature:控制位掩碼編輯器 掩碼大家不會陌生吧,ColumnViewerEditor提供了以下掩碼:
ColumnViewerEditor.DEFAULT
禁用Tab操作
ColumnViewerEditor.TABBING_CYCLE_IN_ROW
如果該行的末尾開始從一開始就達到了同一行
ColumnViewerEditor.TABBING_HORIZONTAL
向右跳格
ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
如果該行的末尾達到開始從開始/以下/以上行的結尾
ColumnViewerEditor.TABBING_VERTICAL
向下跳格
轉自:http://358184482-qq-com.iteye.com/blog/786200
viewer :需要自定義激活過程的TableViewer
editorActivationStrategy: 激活策略,編輯器啓動纔有效
feature:控制位掩碼編輯器 掩碼大家不會陌生吧,ColumnViewerEditor提供了以下掩碼:
ColumnViewerEditor.DEFAULT
禁用Tab操作
ColumnViewerEditor.TABBING_CYCLE_IN_ROW
如果該行的末尾開始從一開始就達到了同一行
ColumnViewerEditor.TABBING_HORIZONTAL
向右跳格
ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
如果該行的末尾達到開始從開始/以下/以上行的結尾
ColumnViewerEditor.TABBING_VERTICAL
向下跳格
下面是我的用法:
TableViewerEditor.create(tableViewer, new ColumnViewerEditorActivationStrategy(tableViewer),
ColumnViewerEditor.TABBING_HORIZONTAL|
ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR|
ColumnViewerEditor.TABBING_VERTICAL);
轉自:http://358184482-qq-com.iteye.com/blog/786200