`
javababy1
  • 浏览: 1239909 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

JFace Viewer 4

阅读更多
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

5.1.8. TreeViewer

TreeViewer 类封装了tree控件。树查看器按照父子关系来显示分等级的对象列表。此查看器需要设置标签供给器和内容供给器。The CheckboxTreeViewer加入了对个别条目泛灰的支持,还可以选中和反选与条目相关联的复选框。常用的API包括:

add(Object, Object) 为查看器中指定元素添加子元素。

add(Object, Object[]) 为查看器中指定元素添加若干子元素。

addTreeListener(ITreeViewerListener)为查看器添加展开收缩事件监听器。

collapseAll() 收缩树查看器的所有节点,只显示根节点。

collapseToLevel(Object, int) 以指定元素为根,收缩到指定层次。

expandAll() 从根节点开始,展开所有节点。

expandToLevel(int)将查看器展开到指定层次。

expandToLevel(Object, int) 展开指定元素的所有父节点,使指定元素可见。并以指定元素为根,展开到指定层次。

getExpandedElements() 返回查看器中展开节点对应元素的列表,包括那些被标记为展开状态,但是因为父节点是收缩的,所以当前隐藏的元素。

getExpandedState(Object) 返回指定元素对应的节点是展开还是收缩状态。

Tree getTree() 返回树查看器的树控件。

getVisibleExpandedElements() 获取用户可见的展开元素。

isExpandable(Object) 返回指定元素对应的节点是否可以被展开。

remove(Object) 从查看器中删除指定元素。

remove(Object[])从查看器中删除指定元素。

reveal(Object) 滚动查看器,确保指定元素被显示。

scrollDown(int, int) Scrolls the viewer's control down by one item from the given display-relative coordinates.

scrollUp(int, int) Scrolls the viewer's control up by one item from the given display-relative coordinates.

setAutoExpandLevel(int) 设置自动展开层次级别。

setContentProvider(IContentProvider) AbstractTreeViewer实现该方法,确保输入的内容查看器为 ITreeContentProvider。

setExpandedElements(Object[]) 设置展开的节点。

setExpandedState(Object, boolean) 设置指定元素对应的节点为展开还是收缩。

setLabelProvider(IBaseLabelProvider) 树查看器实现Viewer 框架的该方法确保输入的标签查看器为ILabelProvider。

CheckboxTreeViewer 增加了如下API:

addCheckStateListener(ICheckStateListener) 为查看器增加选中状态改变监听器。

getChecked(Object)返回指定元素的选中状态。

getCheckedElements() 返回查看器的选中元素列表,包括那些被标记为选中状态,但是因为父节点是收缩的,所以当前隐藏的元素。

getGrayed(Object) 返回指定元素 的泛灰状态。

getGrayedElements() 返回查看器的泛灰元素列表,包括那些被标记为泛灰状态,但是因为父节点是收缩的,所以当前隐藏的元素。

setChecked(Object, boolean)设置指定元素的选中状态。

setCheckedElements(Object[]) 设置查看器的选中元素。

setGrayChecked(Object, boolean) 设置指定元素被选中并泛灰,等同于调用setGrayed 和 setChecked方法。

setGrayed(Object, boolean) 设置指定元素的泛灰状态。

setGrayedElements(Object[]) 设置指定元素为泛灰状态。

setParentsGrayed(Object, boolean) 设置指定元素和其父元素为泛灰状态。

setSubtreeChecked(Object, boolean) 设置指定元素和其子元素的选中状态。

下面的程序例子展示了怎样构建一个树查看器。(参见 Figure 5-10)。
import org.eclipse.jface.viewers.*;
import org.eclipse.swt.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;

public class TreeViewerExample {
   public static void main(String[] args) {
      Display display = new Display();
      Shell shell = new Shell(display);
      shell.setText("Tree Viewer Example");
      shell.setBounds(100, 100, 200, 200);
      shell.setLayout(new FillLayout());

      final TreeViewer treeViewer =
         new TreeViewer(shell, SWT.SINGLE);
      treeViewer.setLabelProvider(
         new PersonListLabelProvider());
      treeViewer.setContentProvider(
         new PersonTreeContentProvider());
      treeViewer.setInput(Person.example());

      shell.open();
      while (!shell.isDisposed()) {
         if (!display.readAndDispatch()) display.sleep();
      }
      display.dispose();
   }
}
Figure 5-10. TreeViewer 样例


创建树查看器后,使用setLabelProvider()方法设置标签供给器,使用setContentProvider()方法设置内容供给器。 PersonTreeContentProvider, 返回每个节点的父节点和子节点。 程序如下:

import org.eclipse.jface.viewers.*;

public class PersonTreeContentProvider
   extends ArrayContentProvider
   implements ITreeContentProvider {

   public Object[] getChildren(Object parentElement) {
      Person person = (Person) parentElement;
      return person.children;
   }

   public Object getParent(Object element) {
      Person person = (Person) element;
      return person.parent;
   }

   public boolean hasChildren(Object element) {
      Person person = (Person) element;
      return person.children.length > 0;
   }
}

分享到:
评论

相关推荐

    JFace-viewer

    **JFace Viewer 知识点详解** 在Java开发领域,特别是使用Eclipse RCP(Rich Client Platform)进行桌面应用开发时,JFace是不可或缺的一部分。JFace是SWT(Standard Widget Toolkit)的一个扩展,提供了更高级别的...

    JFace 类包(3.14)

    4. **Command Framework**:JFace 提供了一个命令框架,使得开发者可以声明性地定义应用程序中的操作和命令。这有助于解耦UI与业务逻辑,使得命令可以在不同上下文中重复使用。 5. **Action和ToolBar Support**:...

    SWT GridViewer_1.0包

    SWT GridViewer_1.0包是针对Java开发者的一个组件库,主要包含了两个核心的JAR文件:`org.eclipse.nebula.jface.gridviewer_1.0.0.jar`和`org.eclipse.nebula.widgets.grid_1.0.0.jar`。这两个文件提供了强大的数据...

    JFace一些资料

    2. **Viewer**:JFace中的Viewer是用于展示数据的组件,它可以是表、树或其他形式。Viewer提供了数据管理、排序、过滤等功能,并能与 SWT 控件如Table、Tree等无缝集成。 3. **Dialogs and Wizards**:JFace提供了...

    JFace的源码,从官网下的

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

    jface treeView 的sample

    在Java编程领域,`jface` 是Eclipse项目的一部分,它提供了一系列的用户界面组件,使得开发者能够更容易地创建复杂的图形用户界面(GUI)。`TreeView` 是jFace中用于展示层次结构数据的一个重要控件,它允许用户以树...

    JFace-TableTree的若干问题.doc

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

    SWT/Jface API 3.4

    4. **Dialogs 和 Wizards**:在 SWT/Jface API 3.4 中,提供了丰富的对话框和向导类,如 MessageDialog、InputDialog、FileDialog 等,帮助开发者快速创建常见的用户交互。向导(Wizard)则是一种引导用户完成多步骤...

    jface 入门例子

    2. **Viewer Framework**:JFace的`TableViewer`和`TreeViewer`提供了强大的表格和树形视图管理,支持数据模型、过滤、排序等功能。例如,创建一个表格展示数据: ```java Table table = new Table(shell, SWT....

    swt_jface_api

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

    swt jface_API_CHM.zip

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

    SWT/JFace 3.5 API (CHM)

    6. 学习资源:SWT/JFace 3.5 API文档不仅是开发过程中不可或缺的参考,还可以配合Eclipse插件如Eclipse Help Viewer,进一步提升阅读体验。同时,开发者社区提供了丰富的教程、示例代码和论坛讨论,为学习和解决实际...

    Eclipse Swt/Jface核心应用 (01-03章)

    - **视图与控制器**:介绍如何创建JFace视图,利用Viewer框架展示数据,并实现相应的控制器逻辑。 - **对话框与消息框**:展示如何创建自定义对话框,以及使用标准的MessageDialog和InputDialog。 5. **第三章:...

    swt.rar_java swt_jface_swt/jface

    JFace的控件如Viewer和EditPart抽象了SWT的细节,使开发者可以专注于业务逻辑而非底层实现。JFace还提供了视图、编辑器、命令和工作台等核心框架,这些都是Eclipse IDE的基础。 在学习SWT和JFace时,你需要了解它们...

    Eclipse SWT/JFACE 核心应用 配套源代码

    4. **源代码分析**:通过研究这些源代码,开发者可以学习到如何初始化SWT和JFace工作台,如何创建窗口和视图,如何添加控件并处理用户交互,以及如何组织和管理应用程序的数据。此外,代码中可能还包括错误处理和...

    JFace Text Framework教程

    **4. 行号和折叠区(Line Numbers and Folding Regions)** JFace Text Framework也支持添加行号和折叠区域的功能,这对于阅读和管理大型代码文件非常有帮助。`VerticalRuler`和`SourceViewer`可以协同工作,显示...

    SWT eclipse Jface API

    例如,`org.eclipse.jface.viewers.Viewer`是JFace的核心组件,它封装了SWT的控件,并提供了模型-视图的分离,使数据和显示分离。`org.eclipse.jface.dialogs.Dialog`则是一系列对话框的基类,可以方便地创建自定义...

    SWT + JFace 入门

    接下来,学习JFace的数据绑定和视图模型,如Viewer和LabelProvider、ContentProvider,它们负责在UI和数据模型之间建立联系。此外,Action和Command框架也是JFace的核心部分,提供了创建菜单、工具栏按钮等操作的...

    SWT/JFace 控件实例

    这会涉及到JFace的Data Binding Support(DBS)和Viewer类。 ### 学习和实践 通过运行这些实例,你可以深入理解SWT和JFace的用法,学习如何设计布局、处理事件、创建自定义控件以及如何将业务逻辑与界面分离。每个...

    SWT-JFace-3.5-API.chm

    4. 视图和编辑器:JFace支持Eclipse插件开发中的视图(View)和编辑器(Editor)概念,提供了用于构建工作台界面的框架。 三、SWT-JFace 3.5 API详解 在SWT-JFace 3.5 API文档中,每个类和接口都详尽地介绍了其...

Global site tag (gtag.js) - Google Analytics