- 浏览: 118001 次
- 性别:
- 来自: 深圳
文章分类
最新评论
SWT中设置TableViewer和TreeViewer成为双击编辑
博客分类: eclipse plugin
TableViewerEditor.create(viewer, new DoubleClickColumnViewerEditorActivationStrategy(viewer), ColumnViewerEditor.DEFAULT);
class DoubleClickColumnViewerEditorActivationStrategy extends ColumnViewerEditorActivationStrategy {
public DoubleClickColumnViewerEditorActivationStrategy(ColumnViewer viewer) {
super(viewer);
}
/**
* 設置編輯器觸發方式
*/
@Override
protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
boolean singleSelect = ((IStructuredSelection) getViewer().getSelection()).size() == 1;
return singleSelect
&& (event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC || event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL);
}
}
覆盖isEditorActivationEvent方法,加上event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION条件。
tableViewerColumn_1.setEditingSupport(new EditingSupport(
tableViewerColumn_1.getViewer()) {
@Override
protected CellEditor getCellEditor(Object element) {
// TODO Auto-generated method stub
if (element instanceof Department) {
Department dep = (Department) element;
TextCellEditor textCell = new TextCellEditor(table);
textCell.setValue(dep.getDmanager());
return textCell;
}
return null;
}
@Override
protected boolean canEdit(Object element) {
// TODO Auto-generated method stub
if (element instanceof Department) {
return true;
}
return false;
}
@Override
protected Object getValue(Object element) {
// TODO Auto-generated method stub
if (element instanceof Department) {
Department dep = (Department) element;
return dep.getDmanager();
}
return null;
}
@Override
protected void setValue(Object element, Object value) {
// TODO Auto-generated method stub
if (element instanceof Department) {
Department dep = (Department) element;
dep.setDmanager(value.toString());
getViewer().refresh();
}
}
});
总结
关键代码就这两行
1:向viewer绑定一种启动编辑的入口(如:是双击、单机、键盘都可以在这个类中区定义)DoubleClickColumnViewerEditorActivationStrategy
TableViewerEditor.create(viewer, new DoubleClickColumnViewerEditorActivationStrategy(viewer), ColumnViewerEditor.DEFAULT);
这行代码是为 哪列 设置为可编辑的,并设置一个EditingSupport
tableViewerColumn_1.setEditingSupport(new EditingSupport(
博客分类: eclipse plugin
TableViewerEditor.create(viewer, new DoubleClickColumnViewerEditorActivationStrategy(viewer), ColumnViewerEditor.DEFAULT);
class DoubleClickColumnViewerEditorActivationStrategy extends ColumnViewerEditorActivationStrategy {
public DoubleClickColumnViewerEditorActivationStrategy(ColumnViewer viewer) {
super(viewer);
}
/**
* 設置編輯器觸發方式
*/
@Override
protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
boolean singleSelect = ((IStructuredSelection) getViewer().getSelection()).size() == 1;
return singleSelect
&& (event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC || event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL);
}
}
覆盖isEditorActivationEvent方法,加上event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION条件。
tableViewerColumn_1.setEditingSupport(new EditingSupport(
tableViewerColumn_1.getViewer()) {
@Override
protected CellEditor getCellEditor(Object element) {
// TODO Auto-generated method stub
if (element instanceof Department) {
Department dep = (Department) element;
TextCellEditor textCell = new TextCellEditor(table);
textCell.setValue(dep.getDmanager());
return textCell;
}
return null;
}
@Override
protected boolean canEdit(Object element) {
// TODO Auto-generated method stub
if (element instanceof Department) {
return true;
}
return false;
}
@Override
protected Object getValue(Object element) {
// TODO Auto-generated method stub
if (element instanceof Department) {
Department dep = (Department) element;
return dep.getDmanager();
}
return null;
}
@Override
protected void setValue(Object element, Object value) {
// TODO Auto-generated method stub
if (element instanceof Department) {
Department dep = (Department) element;
dep.setDmanager(value.toString());
getViewer().refresh();
}
}
});
总结
关键代码就这两行
1:向viewer绑定一种启动编辑的入口(如:是双击、单机、键盘都可以在这个类中区定义)DoubleClickColumnViewerEditorActivationStrategy
TableViewerEditor.create(viewer, new DoubleClickColumnViewerEditorActivationStrategy(viewer), ColumnViewerEditor.DEFAULT);
这行代码是为 哪列 设置为可编辑的,并设置一个EditingSupport
tableViewerColumn_1.setEditingSupport(new EditingSupport(
发表评论
-
SWT控件3
2011-08-10 10:02 337ssssssssss -
SWT控件2
2011-08-10 09:47 398vvvvvvvvvv -
SWT控件
2011-08-10 09:44 354aaaaaaa -
SWT的Table对单元格添加可编辑属性
2011-08-09 17:11 945http://imylone.iteye.com/blog/1 ... -
TreeViewer的ContentProvider详解,以及Lazy载入
2011-07-20 14:00 676http://lizhensan.iteye.com/blog ... -
eclipse 对话框 大全
2011-07-20 13:57 556http://lizhensan.iteye.com/blog ... -
rcp 便捷操作
2011-07-20 13:55 636http://lizhensan.iteye.com/blog ... -
eclipse 代码
2011-07-20 13:54 659http://lizhensan.iteye.com/blog ... -
浏览器 chrome 插件开发
2011-07-20 13:52 752http://lizhensan.iteye.com/blog ... -
代码创建java工程
2011-07-20 13:50 620http://lizhensan.iteye.com/blog ... -
eclipse jet
2011-07-20 13:48 611http://lizhensan.iteye.com/blog ... -
freemarker 第一个例子
2011-07-20 13:47 607http://lizhensan.iteye.com/blog ... -
Eclipse的Error Log View中显示自己的Log
2011-07-20 13:44 763http://lizhensan.iteye.com/blog ... -
述_综_术_技_台_平_Eclipse
2011-07-20 13:40 447http://lizhensan.iteye.com/blog ... -
绍_介_点_展_扩
2011-07-20 12:28 275http://lizhensan.iteye.com/blog ... -
具_工_小_制_自
2011-07-12 12:31 795<extension point=& ... -
点_展_扩_义_定_自
2011-07-12 12:28 569博客分类: eclipse plugin Eclipse 自 ... -
化_际_国_eclipse
2011-07-12 12:23 604博客分类: eclipse plugin 像eclipse ... -
语_法_件_控_本_基_S_W_T
2011-04-06 20:24 1520************************基本控件*** ... -
局_布_S_W_T
2011-04-06 20:21 892import org.eclipse.jface.viewer ...
相关推荐
Viewer提供了多种类型的视图实现,如TableViewer、TreeViewer等,它们可以方便地展示数据,并支持排序、过滤、编辑等功能。 **2. 数据模型** 在JFace Viewer中,数据模型是通过ContentProvider和LabelProvider来...
- 表格和树视图:JFace提供了TableViewer和TreeViewer,它们提供了更高级的数据展示和操作功能,如排序、过滤、分页等。 - 对话框:JFace提供了预定义的对话框,如OpenDialog、SaveDialog,简化了文件选择的操作。...
2. **Viewers**:JFace的Viewer是一个通用的组件容器,它可以用来展示数据集合,比如TableViewer、TreeViewer等。Viewer提供了丰富的事件处理机制和扩展接口,方便自定义行为。 3. **Dialogs and Wizards**:JFace...
表和树控件在数据展示和操作中非常常见,JFace的TableViewer和TreeViewer提供了强大的功能,如排序、过滤和定制列。 总的来说,这个系列教程是学习Eclipse SWT和JFace的理想起点,它将帮助开发者理解这两个库的核心...
在Java编程环境中,JFace库是Eclipse RCP(Rich Client Platform)的一部分,它提供了一套高级用户界面组件,如TableViewer和TreeViewer,用于构建桌面应用程序。在文档标题和描述中提到的问题主要涉及到JFace中的...
`CheckBoxCellEditor`是SWT中的一个特殊组件,主要用于表格(TableViewer或TreeViewer)中实现单元格的复选框编辑功能。这个组件使得用户可以直接在表格中勾选或取消勾选某个条目,而无需打开单独的对话框进行编辑。...
JFace的控件通常比SWT的控件更具有面向对象的特性,例如它有TreeViewer和TableViewer,用于显示和操作树形和表格数据。此外,JFace还包括模型-视图-控制器(MVC)的设计模式,帮助开发者更好地组织代码结构。 在提供...
5. 表和树视图:使用JFace的TableViewer和TreeViewer来展示复杂的数据结构。 6. 视图和编辑器:理解Eclipse工作台的工作原理,创建自定义视图和编辑器。 7. 性能优化:学习如何避免SWT和JFace中的常见性能问题,提高...
`org.eclipse.jface.viewers`包中的Viewer类为数据展示提供了统一的接口,可以方便地绑定数据源到视图上,如TableViewer和TreeViewer。此外,JFace还引入了`org.eclipse.jface.databinding`包,支持数据绑定,使得...
3. 模型类:通过提供诸如TableViewer、TreeViewer等模型类,JFace简化了列表、树形控件等的使用。 4. 对话框和 wizards:JFace提供了对话框和向导的实现,简化了这些常用UI元素的创建。 在学习和使用SWT和JFace时,...
例如,JFace的TableViewer和TreeViewer使得在表格和树形结构中展示数据变得更为简单。 Eclipse RCP是基于这些组件构建的强大框架,允许开发者创建功能丰富的桌面应用。RCP提供了插件体系结构,允许应用程序模块化,...
而JFace的示例可能涉及数据模型与视图的绑定,以及如何使用Dialogs、Viewers(如TableViewer、TreeViewer)来展示复杂的数据结构。 总之,这个名为"ops"的压缩包是一个宝贵的学习资源,它为学习和理解SWT和JFace...
3. 表格和树视图:如何使用TableViewer和TreeViewer来展示和操作结构化数据。 4. 模型-视图-控制器(MVC):解释MVC模式如何帮助保持代码的清晰性和可扩展性。 5. 对话框(Dialogs):介绍如何使用JFace提供的标准...
通过JFace的Dialog类,开发者可以方便地创建自定义对话框,而 SWT 提供了诸如TableViewer和TreeViewer这样的类,用于展示和操作表格或树形数据结构。此外,Eclipse 3.6 API 还支持国际化和本地化,以及插件系统,...
5. **Table and Tree Viewer**: JFace的TableViewer和TreeViewer是对SWT表格和树组件的增强,提供了更多的功能,如排序、过滤、分页,以及与模型数据的紧密集成。 6. **Action Framework**: JFace的动作框架允许...
1. **Viewers**:包括TableViewer、TreeViewer等,它们负责显示和操作数据。例如,TableViewer用于显示表格数据,而TreeViewer则用于显示树形结构的数据。 2. **Editors**:JFace提供了一些内置的编辑器,如Text...
1. **创建 TableViewer**:与 `TreeViewer` 类似,创建一个 `TableViewer` 实例,并将其添加到窗口中。 ```java TableViewer tableViewer = new TableViewer(parent, SWT.BORDER | SWT.MULTI); ``` 2. **实现 ...
4. **表和树的数据视图**:JFace的TableViewer和TreeViewer提供了对表格和树形结构数据的高级支持,包括排序、过滤和分页等功能。 5. **视图和编辑器**:在Eclipse IDE中,JFace用于创建可复用的视图和编辑器组件,...
- **TableViewer, TreeViewer, ListViewer**: 提供了对表格、树和列表的更高级的控制,支持数据模型和视图之间的绑定。 - **Dialogs**: 内置了FileDialog、ColorDialog、FontDialog和MessageBox等常用对话框,方便...
第17章可能讲解了如何使用TableViewer和TreeViewer来显示和操作数据,包括排序、过滤、分页等高级功能。 7. **事件和监听器**:在GUI编程中,事件驱动模型是关键。第18章可能涉及SWT和JFace中的事件机制,包括添加...