让TableViewer支持Tab编辑

时间:2022-01-02 10:56:29
高效的编辑无疑于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 
向下跳格 

下面是我的用法: 

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