2006-12-16
TableViewer, TreeViewer双击编辑
关键字: eclipse, rcp, plugin, swt, jface
在TreeViewer或TableViewer中,可用CellEditor结合CellModifier可以很实现表格的编辑功能
但是默认的是单击,就会打开编辑区域。有时候我们会需要双击进行(或者其他),于是我写了一个
DoubleCellModifier,只要让你的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);
- }
发表评论
- 浏览: 30621 次
- 性别:

- 来自: 浙江台州

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
TableViewer, TreeViewer ...
不用点击,直接以编辑模式展现所有CELL如何实现?
-- by tanchang18 -
让ToolBarManager中的项不 ...
你太强啦博主!
-- by 379548695 -
TableViewer, TreeViewer ...
想问下楼主,treeviewer能支持多级树不能?
-- by 379548695 -
RCP开发日积月累
"关于SWT Table中, 加入其他控件 (2006-9-2) SWT ...
-- by younghaowei -
照着葫芦画,CComboViewer
nice,为啥么不上个图看看效果。
-- by semicircle






评论排行榜