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

JFace Viewer 1

阅读更多
<link href="images/style.css" type="text/css" rel="STYLESHEET"> <link href="images/docsafari.css" type="text/css" rel="STYLESHEET">

第5章. JFace Viewers

尽管SWT提供了本地平台控件接口,但是它们仅限于使用字符,数字,图像这样的简单数据。这对于大数据量的程序很好用,但是要在列表,表格,树,文字控件上处理面向对象的数据就很吃力。这时就需要使用JFace viewer,它为SWT控件提供了面向对象的封装。



5.1. 面向目录的Viewer

JFace viewer包括 ListViewer, TableViewer, 和 treeViewer, ,通过它们你可以直接使用域模型对象(例如,像公司,人,部门这样的业务对象),而不用手工将它们分解成基本的字符,数字,图片。这些viewer提供了适配接口来做作这些事情,包括接受一个条目的标签(图片和文字),访问一个条目的子节点(如果是树),从列表中选择条目,为条目排序,过滤条目,将一个随意输入的对象转化为适合底层的SWT控件显示。 (see Figure 5-1).

Figure 5-1. viewer及相关适配器关系图.




5.1.1. 标签供给器

标签供给器是viewer中最常用的适配器之一。它负责在控件中映射域模型对象到可显示的文字和图片。

两个最常用的标签供给器是 ILabelProvider (参考 Figure 5-2), 它在列表和树中使用, ITableLabelProvider (参考 Figure 5-3),它是在表格中使用。 ILabelProvider 是映射一个条目到单个图片和文字,ITableLabelProvider 是映射一个条目到多个图片和文字(对应表格中的每一列)。 viewer通过 setLabelProvider() 方法来使用标签供给器

Figure 5-2. LabelProvider 层次图

Figure 5-3. TableLabelProvider 层次图


defined by ILabelProvider中定义的方法包括:

getImage(Object) 返回给定元素对应的图标.

getText(Object) 返回给定元素对应的文字。

ITableLabelProvider 中定义的方法包括:

getColumnImage(Object, int) 返回给定元素的指定列对应的图标。

getColumnText(Object, int) 返回给定元素的指定列对应的文字。

使用标签供给器的程序例子, 参见5.1.6 节, ListViewer 类。



5.1.2. 内容供给器

内容供给器为viewer提供了在一个或多个域模型对象和viewer所需要的内部目录结构之间的映射,域模型对象是从外界输入到viewer中的。

两个最常用的内容供给器是 IStructuredContentProvider, 它使用在列表和表格中, ITreeContentProvider, 使用在树中 (参见 Figure 5-4). tt>IStructuredContentProvider映射一个域模型到一个数组对象,ITreeContentProvider则支持获取某个节点的 父节点和字节点(在树中使用)。viewer通过 setContentProvider() 方法来使用内容供给器。域模型通过setInput() 方法输入到viewer中。

Figure 5-4. ContentProvider 层次图


IStructuredContentProvider定义的方法包括:

getElements(Object)Object作为给定的输入对象,返回对应的 要在viewer显示的元素。

inputChanged(Viewer, Object, Object) 输入的数据发生变化时的,需要进行的动作。

ITreeContentProvider 定义的方法包括:

Object[] getChildren(Object) 返回给定元素的子节点。该方法同 getElements(Object) 的区别在于后者用来获取整棵树的根节点,而它是用来获取每个节点的子节点(当然也包括根节点)。

getParent(Object) 返回给定元素的父节点或者返回 null来表示没有父节点。

hasChildren(Object) 返回该元素是否有子节点。

内容供给器的程序例子参见 5.1.6 节, ListViewer 类。


分享到:
评论

相关推荐

    JFace-viewer

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

    JFace 类包(3.14)

    1. **Viewer框架**:JFace 的 Viewer 框架是其设计的核心部分,它提供了一种用于展示数据的统一方法。Viewer可以看作是一个可定制的数据视图,能够处理各种数据结构,并通过适配器机制与不同的控件(如Table, Tree等...

    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

    6. **Viewer Framework**:JFace 的 Viewer 框架为树、表格和其他复杂视图的实现提供了便利。Viewer 可以轻松地显示和操作数据集,同时支持排序、过滤和分页。 7. **Table and Tree Widgets**:SWT 提供了 Table 和...

    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 核心应用 配套源代码

    源代码中可能包含JFace的使用示例,如使用Dialogs创建自定义对话框,利用Viewer框架展示和操作数据,以及运用DataBinding进行数据同步。 3. **核心应用**:在"核心应用"的标题中,我们可以期待看到一些基础和关键的...

    JFace Text Framework教程

    **1. 代码提示(Code Completion)** 在编程环境中,代码提示是提高开发效率的关键特性。JFace Text Framework提供了一种机制,允许开发者自定义代码补全策略。通过实现`IContentAssistProcessor`接口,你可以定义...

    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

    - `Viewer`:JFace中的通用视图接口,提供了数据管理和视图更新的机制。 总结来说,SWT-JFace 3.5 API是Java GUI开发的重要工具,它提供了一套强大且灵活的接口,使得开发者可以创建出高效、美观的用户界面。通过...

Global site tag (gtag.js) - Google Analytics