`
lizhensan
  • 浏览: 383048 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

SWT中设置TableViewer和TreeViewer成为双击编辑

 
阅读更多

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(

 

 

http://hi.baidu.com/crazynull/blog/category/%C4%AC%C8%CF%B7%D6%C0%E0

 

分享到:
评论

相关推荐

    Swt/Jface tableViewer入门教程一(显示tableViewer)

    在本文中,我们将深入探讨如何使用Swt/Jface库中的`tableViewer`组件来创建一个基本的表格视图。Swt(Standard Widget Toolkit)是Java中用于开发原生界面的应用程序开发工具包,而Jface是建立在Swt之上的抽象层,...

    Swt/Jface tableViewer入门教程三(加入在表格上直接编辑数据)

    在本文中,我们将深入探讨如何使用Swt/Jface库中的`TableViewer`组件来创建一个功能丰富的表格,并实现用户可以直接在表格上编辑数据的功能。Swt/Jface是Eclipse平台的一部分,提供了一套用于构建图形用户界面(GUI...

    swt/jface tableViewer开发简化

    在IT行业中, SWT (Standard Widget Toolkit) 和 JFace 是用于构建 Java GUI 应用程序的两个重要库。它们是Eclipse开源项目的一部分,为开发者提供了丰富的用户界面组件和高级抽象,使得开发桌面应用程序变得更加...

    SWT Table单元格编辑功能

    ### SWT Table单元格编辑功能详解 在Java图形用户界面(GUI)开发中,SWT...通过以上步骤,我们可以在SWT `Table`控件中实现单元格的编辑功能,使用户能够直接在界面上修改数据,提高了应用的交互性和实用性。

    SWT中自己订制了一个TableViewer(用于我的列出项目中的所有错误信息),作为测试用的。与大家分享

    总结来说,SWT中的TableViewer是一个强大而灵活的数据展示工具,通过自定义适配器和设置列属性,我们可以方便地展示项目中的错误信息,提高问题诊断和修复的效率。对于源码和工具爱好者,学习和掌握TableViewer的...

    SWT和JFace开发实例

    - 使用TableViewer和TreeViewer实现数据展示和编辑。 - 创建自定义对话框,如使用Dialog和Shell类。 - 事件驱动编程,实现用户交互响应。 - 使用Action和Command模式进行命令管理,提高代码复用性。 - 实现文件...

    TableViewer示例

    总结,TableViewer是SWT中处理表格数据的强大工具,通过与ContentProvider、LabelProvider以及各种监听器配合,能够实现复杂的数据展示和交互功能。熟练掌握TableViewer的使用,将极大地提升Java桌面应用的用户体验...

    tableviewer edit

    在标题“tableviewer edit”中提到的编辑功能,是指`TableViewer`支持对表格中的单元格进行编辑。 `CellEditor` 是`TableViewer`编辑功能的核心,允许用户在表格的特定单元格内输入或修改数据。`CellEditor` 提供了...

    Set TableViewer Cell Focus

    "Set TableViewer Cell Focus"这个话题是关于如何在TableViewer中设置焦点到特定单元格上,这对于实现用户交互和数据编辑功能至关重要。在Eclipse插件开发或者基于SWT(Standard Widget Toolkit)的应用程序中,...

    SWT基础代码涵盖其所有控件

    JFace的一些关键组件包括Viewer(用于封装SWT控件,如TableViewer和TreeViewer)、SelectionService(处理控件选择事件)以及Dialogs(提供标准对话框,如消息对话框和输入对话框)。 6. SWT与JFace的协同工作 在...

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

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

    TableViewer单元格编辑功能

    用TextCellEditor和ComboBoxCellEditor给表格添加编辑功能。 通过表格的addListener事件为表格的单元格添加编辑功能,事例根据鼠标点击时鼠标的X和Y轴的坐标判断 单元格显示为TextCellEditor或ComboBoxCellEditor...

    SWT/Jface API 3.4

    在 JFace 中,TableViewer 和 TreeViewer 扩展了这些功能,添加了数据绑定和自定义列渲染等功能。 8. **Layout Managers**:SWT 提供了多种布局管理器,如 FillLayout、GridLayout、FormLayout 等,用于控制组件在...

    swt/jface api帮助文档

    JFace的TableViewer和TreeViewer提供了一种更抽象的方式来操作这些组件,包括数据绑定和排序。 7. **JFace服务**:包括Dialog、WorkbenchWindow、Action、SelectionService等,它们简化了窗口、动作和选择事件的...

    Swt.JFace.in.Action 和 SWT 学习资料(两份资料)

    4. **表视图和树视图**:说明如何使用TableViewer和TreeViewer来显示和管理数据,以及如何实现分页、排序和过滤功能。 5. **JFace的数据绑定**:介绍JFace的DataBinding机制,如何将UI组件与业务模型对象关联,实现...

    全面介绍SWT-JFace

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

    SWT/JFACE 资料

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

    CheckBoxCellEditor.zip_CheckboxCellEditor_SWT_cell

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

    SWT JFACE开发帮助文档(chm)

    5. **表和树**:学习如何使用TableViewer和TreeViewer来显示和操作数据集合,以及如何自定义列和行的显示。 6. **表单构建**:了解FormToolkit和FormPage,用以构建复杂的表单结构,包括字段验证和错误提示。 7. *...

    Eclipse SWT/JFace 核心应用的全部源代码

    5. `org.eclipse.jface.viewers`:用于创建和管理数据驱动视图的类,如TableViewer和TreeViewer。 6. `org.eclipse.jface.databinding`:数据绑定相关的API,使UI与模型数据保持同步。 7. `org.eclipse.jface....

Global site tag (gtag.js) - Google Analytics