TableViewer双击激活CellEditor
来源:互联网 发布:淘宝xbox one手柄 编辑:程序博客网 时间:2024/06/01 23:27
在使用TableViewer的过程中,许多情况下我们需要给列添加CellEditor来使这一列的内容可以被编辑。
然而,通常情况下,CellEditor都是单击激活的,在某些时候,我们希望CellEditor不是那么频繁的被激活,那么可以使其双击以后才激活。
首先,创建TableViewer,并且添加ContentProvider,CellEditor,CellModify,LabelProvider等基础设施
final TableViewer v = new TableViewer(shell, SWT.BORDER | SWT.FULL_SELECTION);v.setContentProvider(new MyContentProvider());v.setCellEditors(new CellEditor[] { new TextCellEditor(v.getTable()), new TextCellEditor(v.getTable()), new TextCellEditor(v.getTable()) });v.setCellModifier(new ICellModifier() {@Overridepublic boolean canModify(final Object element, final String property) {return true;}@Overridepublic Object getValue(final Object element, final String property) {return "Column " + property + " => " + element.toString();}@Overridepublic void modify(final Object element, final String property, final Object value) {}});v.setColumnProperties(new String[] { "1", "2", "3" });// 添加3列TableViewerColumn column = new TableViewerColumn(v, SWT.NONE);column.getColumn().setWidth(200);column.getColumn().setMoveable(true);column.getColumn().setText("Column 1");column.setLabelProvider(new ColumnLabelProvider());column = new TableViewerColumn(v, SWT.NONE);column.getColumn().setWidth(200);column.getColumn().setMoveable(true);column.getColumn().setText("Column 2");column.setLabelProvider(new ColumnLabelProvider());column = new TableViewerColumn(v, SWT.NONE);column.getColumn().setWidth(200);column.getColumn().setMoveable(true);column.getColumn().setText("Column 3");column.setLabelProvider(new ColumnLabelProvider());
然后创建一个Celleditor激活策略并将其绑定到tableviewer上。
// 创建以个Editor激活策略,检测鼠标双击时返回true,使CellEditor被激活。TRAVERSAL样式为使用Tab按键时激活。final ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(v) {@Overrideprotected boolean isEditorActivationEvent(final ColumnViewerEditorActivationEvent event) {return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;}};// 为tableviewer添加CellEditor自定义激活策略TableViewerEditor.create(v, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR| ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION | ColumnViewerEditor.TABBING_CYCLE_IN_ROW);final MyModel[] model = createModel();v.setInput(model);v.getTable().setLinesVisible(true);v.getTable().setHeaderVisible(true);
0 0
- TableViewer双击激活CellEditor
- TableViewer, TreeViewer双击编辑
- TableViewer, TreeViewer双击编辑
- swt tableViewer双击选择单元格事件
- TableViewer
- SWT中如何设置TableViewer和TreeViewer成为双击编辑
- 定义自己的CellEditor
- 关于JFace的TableViewer中引入ComboBoxCellEditor 快速双击对于Cell Combo无法展开问题的解决
- TableViewer组件
- 双击
- Swt/Jface tableViewer入门教程一(显示tableViewer)
- Swt/Jface tableViewer入门教程一(显示tableViewer)
- 控制cellEditor是否为可编辑
- SWT/JFACE Viewer的cellEditor处理流程
- [AHK]双击托盘区某可见程序图标以激活之
- TableViewer and TreeViewer
- 表格(TableViewer类)
- 表格(TableViewer类)
- 参数学习算法之梯度下降
- http://www.cnblogs.com/menlsh/archive/2013/05/19/3087810.html
- 应用Valgrind Linux程序的内存问题
- ftp命令
- Android ANR 起因的探究
- TableViewer双击激活CellEditor
- 用JdbcTemplateTool配合JdbcTemplate实现更便捷的数据库操作
- html中表单使用post方式提交,为什么没有值? get方式可以得到控件的值
- PAT 1030 完美数列(25)
- Java NIO之多个Selector的实现
- 点击劫持ClickJacking+HTML5
- 大数据时代之hadoop(一):hadoop安装
- 博客收集
- chmod 命令详解