`

TableViewer_TreeViewer

 
阅读更多
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(

分享到:
评论

相关推荐

    JFace-viewer

    Viewer提供了多种类型的视图实现,如TableViewer、TreeViewer等,它们可以方便地展示数据,并支持排序、过滤、编辑等功能。 **2. 数据模型** 在JFace Viewer中,数据模型是通过ContentProvider和LabelProvider来...

    SWT和JFace开发实例

    - 表格和树视图:JFace提供了TableViewer和TreeViewer,它们提供了更高级的数据展示和操作功能,如排序、过滤、分页等。 - 对话框:JFace提供了预定义的对话框,如OpenDialog、SaveDialog,简化了文件选择的操作。...

    JFace的源码,从官网下的

    2. **Viewers**:JFace的Viewer是一个通用的组件容器,它可以用来展示数据集合,比如TableViewer、TreeViewer等。Viewer提供了丰富的事件处理机制和扩展接口,方便自定义行为。 3. **Dialogs and Wizards**:JFace...

    Eclipse_Swt_Jface_核心应用_part01--03_of_19

    表和树控件在数据展示和操作中非常常见,JFace的TableViewer和TreeViewer提供了强大的功能,如排序、过滤和定制列。 总的来说,这个系列教程是学习Eclipse SWT和JFace的理想起点,它将帮助开发者理解这两个库的核心...

    JFace-TableTree的若干问题.doc

    在Java编程环境中,JFace库是Eclipse RCP(Rich Client Platform)的一部分,它提供了一套高级用户界面组件,如TableViewer和TreeViewer,用于构建桌面应用程序。在文档标题和描述中提到的问题主要涉及到JFace中的...

    CheckBoxCellEditor.zip_CheckboxCellEditor_SWT_cell

    `CheckBoxCellEditor`是SWT中的一个特殊组件,主要用于表格(TableViewer或TreeViewer)中实现单元格的复选框编辑功能。这个组件使得用户可以直接在表格中勾选或取消勾选某个条目,而无需打开单独的对话框进行编辑。...

    SWT/JFACE 资料

    JFace的控件通常比SWT的控件更具有面向对象的特性,例如它有TreeViewer和TableViewer,用于显示和操作树形和表格数据。此外,JFace还包括模型-视图-控制器(MVC)的设计模式,帮助开发者更好地组织代码结构。 在提供...

    Manning - SWT JFace in Action

    5. 表和树视图:使用JFace的TableViewer和TreeViewer来展示复杂的数据结构。 6. 视图和编辑器:理解Eclipse工作台的工作原理,创建自定义视图和编辑器。 7. 性能优化:学习如何避免SWT和JFace中的常见性能问题,提高...

    swt_jface_api

    `org.eclipse.jface.viewers`包中的Viewer类为数据展示提供了统一的接口,可以方便地绑定数据源到视图上,如TableViewer和TreeViewer。此外,JFace还引入了`org.eclipse.jface.databinding`包,支持数据绑定,使得...

    swt,jface笔记

    3. 模型类:通过提供诸如TableViewer、TreeViewer等模型类,JFace简化了列表、树形控件等的使用。 4. 对话框和 wizards:JFace提供了对话框和向导的实现,简化了这些常用UI元素的创建。 在学习和使用SWT和JFace时,...

    The.Definitive.Guide.to.SWT.and.JFace.eBook-LiB

    例如,JFace的TableViewer和TreeViewer使得在表格和树形结构中展示数据变得更为简单。 Eclipse RCP是基于这些组件构建的强大框架,允许开发者创建功能丰富的桌面应用。RCP提供了插件体系结构,允许应用程序模块化,...

    swt example

    而JFace的示例可能涉及数据模型与视图的绑定,以及如何使用Dialogs、Viewers(如TableViewer、TreeViewer)来展示复杂的数据结构。 总之,这个名为"ops"的压缩包是一个宝贵的学习资源,它为学习和理解SWT和JFace...

    SWT/JFace专题 --- SWT/JFace概述

    3. 表格和树视图:如何使用TableViewer和TreeViewer来展示和操作结构化数据。 4. 模型-视图-控制器(MVC):解释MVC模式如何帮助保持代码的清晰性和可扩展性。 5. 对话框(Dialogs):介绍如何使用JFace提供的标准...

    Eclipse 3.6 API 含 SWT JFACE API

    通过JFace的Dialog类,开发者可以方便地创建自定义对话框,而 SWT 提供了诸如TableViewer和TreeViewer这样的类,用于展示和操作表格或树形数据结构。此外,Eclipse 3.6 API 还支持国际化和本地化,以及插件系统,...

    swt jface_API_CHM.zip

    5. **Table and Tree Viewer**: JFace的TableViewer和TreeViewer是对SWT表格和树组件的增强,提供了更多的功能,如排序、过滤、分页,以及与模型数据的紧密集成。 6. **Action Framework**: JFace的动作框架允许...

    JFace一些资料

    1. **Viewers**:包括TableViewer、TreeViewer等,它们负责显示和操作数据。例如,TableViewer用于显示表格数据,而TreeViewer则用于显示树形结构的数据。 2. **Editors**:JFace提供了一些内置的编辑器,如Text...

    Eclipse下SWT图形界面开发指南(1)

    1. **创建 TableViewer**:与 `TreeViewer` 类似,创建一个 `TableViewer` 实例,并将其添加到窗口中。 ```java TableViewer tableViewer = new TableViewer(parent, SWT.BORDER | SWT.MULTI); ``` 2. **实现 ...

    全面介绍SWT-JFace

    4. **表和树的数据视图**:JFace的TableViewer和TreeViewer提供了对表格和树形结构数据的高级支持,包括排序、过滤和分页等功能。 5. **视图和编辑器**:在Eclipse IDE中,JFace用于创建可复用的视图和编辑器组件,...

    SWT&JFACE GEF or Eclipse Platform

    - **TableViewer, TreeViewer, ListViewer**: 提供了对表格、树和列表的更高级的控制,支持数据模型和视图之间的绑定。 - **Dialogs**: 内置了FileDialog、ColorDialog、FontDialog和MessageBox等常用对话框,方便...

    Eclipse Swt/Jface核心应用 (14-19章)

    第17章可能讲解了如何使用TableViewer和TreeViewer来显示和操作数据,包括排序、过滤、分页等高级功能。 7. **事件和监听器**:在GUI编程中,事件驱动模型是关键。第18章可能涉及SWT和JFace中的事件机制,包括添加...

Global site tag (gtag.js) - Google Analytics