在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 edit”中提到的编辑功能,是指`TableViewer`支持对表格中的单元格进行编辑。 `CellEditor` 是`TableViewer`编辑功能的核心,允许用户在表格的特定单元格内输入或修改数据。`CellEditor` 提供了...
在本文中,我们将深入探讨如何使用Swt/Jface库中的`TableViewer`组件来创建一个功能丰富的表格,并实现用户可以直接在表格上编辑数据的功能。Swt/Jface是Eclipse平台的一部分,提供了一套用于构建图形用户界面(GUI...
5. **事件监听**:`tableViewer`提供了丰富的事件监听机制,如`SelectionChangedListener`用于监听选中项变化,`DoubleClickListener`用于处理双击事件。你可以根据需求添加相应的监听器来响应用户操作。 6. **刷新...
TableViewer支持单元格编辑,通过`setCellModifier`设置单元格修改器。此外,还需实现`IStructuredContentProvider`接口的`getElements`方法,以便在编辑后更新数据。 7. 排序与过滤 TableViewer提供`setSortColumn...
6. **定制化功能**: `tableViewer`支持自定义列宽、单元格样式,甚至自定义单元格编辑器,提供高度可定制化的用户体验。 关于压缩包文件`tableReflectPro`,名字暗示可能是一个关于反射(Reflection)的工具或示例...
`TableViewer`不仅能够显示数据,还可以对数据进行排序、过滤、编辑等操作,是Eclipse插件开发中的重要工具。 1. **创建TableViewer** 创建`TableViewer`的基本步骤包括:首先,你需要一个`Table`控件,然后通过`...
"Set TableViewer Cell Focus"这个话题是关于如何在TableViewer中设置焦点到特定单元格上,这对于实现用户交互和数据编辑功能至关重要。在Eclipse插件开发或者基于SWT(Standard Widget Toolkit)的应用程序中,...
点击Enter键,对TableViewer的单元格进行逐个遍历的辅助类,推荐用于使用ViewerColumn.setEditingSupport的可编辑TableViewer。 Since 3.3, an alternative API is available, see ViewerColumn.setEditingSupport...
此外,TableViewer还支持排序、选择事件监听、编辑功能等。你可以根据需求进一步定制这些功能。 最后,关于文件"tableViewer",可能是该示例项目的源代码文件。通过查看这个文件,我们可以更深入地理解自定义...
### SWT Table单元格编辑功能详解 在Java图形用户界面(GUI)开发中,SWT(Standard Widget Toolkit)是一个广泛使用的工具包,它提供了丰富的控件集合,用于构建高性能的桌面应用程序。其中,`Table`控件是SWT中最...
3. "jface TableViewer ViewerCell editElement based on Column - Stack Overflow.mht" 可能涉及根据列条件触发单元格编辑的实现。 4. "Eclipse JFace TableViewer - Tutorial.mht" 是一个JFace TableViewer的教程...
RCP开发比Table更高级的TableViewer的使用。实现列的隐藏与显示
6. **事件处理**:确保TableViewer中的事件处理正确,例如,当用户选择某一行时,可以触发相应的事件,进行数据的详细查看或编辑。 在“带有翻页功能的TableViewer.rar”压缩包中,很可能包含了实现这些功能的Java...
Plugins-JFace-TableViewer.rar Plugins-JFace-TableViewer.rar Plugins-JFace-TableViewer.rar Plugins-JFace-TableViewer.rar Plugins-JFace-TableViewer.rar
Viewer提供了多种类型的视图实现,如TableViewer、TreeViewer等,它们可以方便地展示数据,并支持排序、过滤、编辑等功能。 **2. 数据模型** 在JFace Viewer中,数据模型是通过ContentProvider和LabelProvider来...
`CheckBoxCellEditor`是SWT中的一个特殊组件,主要用于表格(TableViewer或TreeViewer)中实现单元格的复选框编辑功能。这个组件使得用户可以直接在表格中勾选或取消勾选某个条目,而无需打开单独的对话框进行编辑。...
虽然文件名字起得很笼统 里面只有一个关于TableViewer的项目源码 源码的依据是我转载的一篇学习TableViewer的博客源码 http://blog.csdn.net/weiweiwei256/article/details/49514699
- 使用TableViewer和TreeViewer实现数据展示和编辑。 - 创建自定义对话框,如使用Dialog和Shell类。 - 事件驱动编程,实现用户交互响应。 - 使用Action和Command模式进行命令管理,提高代码复用性。 - 实现文件...
1. **创建 TableViewer**:与 `TreeViewer` 类似,创建一个 `TableViewer` 实例,并将其添加到窗口中。 ```java TableViewer tableViewer = new TableViewer(parent, SWT.BORDER | SWT.MULTI); ``` 2. **实现 ...