- 浏览: 75668 次
- 性别:
- 来自: 深圳
文章分类
最新评论
在TreeViewer或TableViewer中,可用CellEditor结合CellModifier可以很实现表格的编辑功能
但是默认的是单击,就会打开编辑区域。有时候我们会需要双击进行(或者其他),于是我写了一个
DoubleCellModifier,只要让你的CellModifier继承它,就可以很方便实现双击编辑。
具体代码如下:
//--------------------从这里开始-----------------------
package ...
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)) {
Object[] properties = tableViewer.getColumnProperties();
int column = findProperty(properties, 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)) {
Object[] properties = treeViewer.getColumnProperties();
int column = findProperty(properties, 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);
private int findProperty(Object[] properties, String property) {
for (int i = 0; i < properties.length; ++i) {
if (properties[i].equals(property)) {
return i;
}
}
return -1;
}
}
发表评论
-
EditorPart
2011-04-13 16:26 9841、设置editor标题 @Override publi ... -
RCP控制View 特性配置(如移动、最大化、最小化、关闭等)
2011-03-26 17:34 46931、我们可以添加org.eclipse.ui.perspect ... -
RCP 程序类
2011-03-07 10:21 8821、ApplicationWorkbenchAdvisor ... -
RCP掌握技术
2011-01-13 11:16 965RCP Application Plugin JFac ... -
GMF学习纪要
2010-12-20 15:23 1268创建GEF工程,具体创建步骤可以参考http://www.ib ... -
重命名Action
2010-12-17 10:22 851File selected_file = (File) sel ... -
控制只能开启一个rcp应用程序
2010-11-25 15:22 859private boolean isAreadyRun ... -
开发环境
2010-05-17 16:39 0http://download.eclipse.org/rel ... -
插件国际化
2010-02-09 14:39 1053第三方国际化插件工具 1.sourceforge.net ... -
在透视图显示工作台视图
2010-02-09 09:16 913public class Perspective implem ... -
preWindowOpen 设置样式
2010-01-14 17:08 1397public void preWindowOpen() { ... -
RCP 动态 改变 主窗体标题
2009-10-31 09:23 1149在视图或编辑器触发事件中 IWorkbenchWind ... -
Java: applet+jfreechart动态显示方法的执行时间
2009-10-18 23:03 2658public ActionForward execute(Ac ... -
JFreechart综合
2009-10-13 23:13 4605JFreeChart是一个Java开源项目,是一款优秀的J ... -
jfreechart1
2009-08-23 22:54 0? 一、JFreeChart的介绍与获取 JFre ... -
eclispe RCP 小技巧(转)
2009-08-05 22:58 2999一、同时关闭所有打开的view 在view中,只有一个clo ... -
Eclipse RCP(转)
2009-08-05 22:56 2412简单地讲, 一个RCP应用就是一个可独立于Eclispe I ... -
初学RCP开发
2009-07-28 09:37 14341、以前用过AWT,对SWT掌握不难! 2、必须掌握3个概念 ... -
PreferencePage自定义运行时空指针异常疑惑
2009-07-27 16:19 1142PreferenceManager mgr = new P ...
相关推荐
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. **实现 ...