在TreeViewer或TableViewer中,可用CellEditor结合CellModifier可以很实现表格的编辑功能
但是默认的是单击,就会打开编辑区域。有时候我们会需要双击进行(或者其他),于是我写了一个
DoubleCellModifier,只要让你的CellModifier继承它,就可以很方便实现双击编辑。
具体代码如下:
java 代码
- package com.longthsoft.rcppart.ui;
-
- import org.eclipse.jface.viewers.ICellModifier;
- import org.eclipse.jface.viewers.TableViewer;
- import org.eclipse.jface.viewers.TreeViewer;
- import org.eclipse.swt.events.MouseAdapter;
- import org.eclipse.swt.events.MouseEvent;
- import org.eclipse.swt.widgets.Item;
-
- public abstract class DoubleClickCellModifier implements ICellModifier {
-
- private boolean doubleClick;
- private Object element;
- private String property;
-
- public DoubleClickCellModifier(final TableViewer tableViewer) {
- tableViewer.getTable().addMouseListener(new MouseAdapter() {
- @Override
- public void mouseDoubleClick(MouseEvent e) {
- if (allowModify(element, property)) {
- int column = UIUtil.getPropertyColumnIndex(tableViewer, property);
- doubleClick = true;
- tableViewer.editElement(element, column);
- doubleClick = false;
- }
- }
- });
- }
-
- public DoubleClickCellModifier(final TreeViewer treeViewer) {
- treeViewer.getTree().addMouseListener(new MouseAdapter() {
- public void mouseDoubleClick(MouseEvent e) {
- if (allowModify(element, property)) {
- int column =UIUtil.getPropertyColumnIndex(treeViewer, property);
- doubleClick = true;
- treeViewer.editElement(element, column);
- doubleClick = false;
- }
- }
- });
- }
-
- public boolean canModify(Object element, String property) {
- this.element = element;
- this.property = property;
- if (doubleClick) {
- return true;
- } else {
- return false;
- }
- }
-
- public void modify(Object element, String property, Object value) {
- if (element instanceof Item) {
- element = ((Item) element).getData();
- }
- doModify(element, property, value);
- }
-
- public boolean allowModify(Object element, String property) {
- return true;
- }
-
- public abstract void doModify(Object element, String property, Object value);
- }
分享到:
相关推荐
Jface TableViewer控件实现的对标签文件的标签属性的修改功能。 用TextCellEditor和ComboBoxCellEditor给表格添加编辑功能。 通过表格的addListener事件为表格的单元格添加编辑功能,事例根据鼠标点击时鼠标的X和Y...
TableViewer
全面介绍了TableViewer的使用
点击Enter键,对TableViewer的单元格进行逐个遍历的辅助类,推荐用于使用ViewerColumn.setEditingSupport的可编辑TableViewer。 Since 3.3, an alternative API is available, see ViewerColumn.setEditingSupport...
rcp tableviewer celleditor
RCP开发比Table更高级的TableViewer的使用。实现列的隐藏与显示
NULL 博文链接:https://arizona.iteye.com/blog/526298
NULL 博文链接:https://zhangjiangfang.iteye.com/blog/701299
NULL 博文链接:https://marsvaadin.iteye.com/blog/1320182
Plugins-JFace-TableViewer.rar Plugins-JFace-TableViewer.rar Plugins-JFace-TableViewer.rar Plugins-JFace-TableViewer.rar Plugins-JFace-TableViewer.rar
NULL 博文链接:https://1299020954.iteye.com/blog/2231923
NULL 博文链接:https://guhanjie.iteye.com/blog/1183478
带有翻页功能的TableViewer.rar
虽然文件名字起得很笼统 里面只有一个关于TableViewer的项目源码 源码的依据是我转载的一篇学习TableViewer的博客源码 http://blog.csdn.net/weiweiwei256/article/details/49514699
NULL 博文链接:https://zhangjiangfang.iteye.com/blog/701300
TreeViewer进行目录切换时,TableViewer窗体有时会变成空白 2. 有特殊字符的过滤操作将导致异常 3. 重命名没有考虑特殊字符 4. 有大量文件(几百个以上)的目录会打开的很慢 5. 文件删除失败时没有提示...
9.9.8 可编辑的表格(TableEditor) 187 9.9.9 用键盘控制表格(TableCursor) 189 9.9.10 带有进度条的表格 191 9.9.11 表格小结 192 9.10 树(Tree) 192 9.10.1 不同样式的树 193 9.10.2 为树添加...
1. TreeViewer进行目录切换时,TableViewer窗体有时会变成空白 2. 有特殊字符的过滤操作将导致异常 3. 重命名没有考虑特殊字符 4. 有大量文件(几百个以上)的目录会打开的很慢 5. 文件删除失败时没有提示###### 新...
TreeViewer进行目录切换时,TableViewer窗体有时会变成空白 2. 有特殊字符的过滤操作将导致异常 3. 重命名没有考虑特殊字符 4. 有大量文件(几百个以上)的目录会打开的很慢 5. 文件删除失败时没有提示...