Eclipse4 RCP 指南

用户接口模型元素

下面的模型元素表示你可以用来创建用户应用程序接口的基本元素。

窗口

应用程序由一个或多个窗口组成,通常一个应用程序只有一个窗口,但并不限制这样,例如你连接了多个显示器,可以打开多个窗口。

Parts

什么是 parts?

Parts 是你用来导航或修改数据的 UI 元素,一个 Part 可有一个下拉菜单,一个上下文菜单,以及一个工具栏。Part 可以堆叠,或者放到其他 Part 后面,这依赖于它们放入的容器。

Parts behaving as views or as editors

Part 通常分为视图编辑器,区分它们并不是因为技术上的不同,而是使用它们的概念不同。

视图通常在一组数据上工作,可能是一个层次数据结构,如果数据通过视图改变了,这个改变通常直接反映到底层的数据结构,视图有时允许用户针对选择的数据打开编辑器。

在 Eclipse IDE 中视图的一个例子是包浏览器,允许你浏览项目文件,如果你改变包浏览器中的数据,例如,你重命名文件,文件名会直接在文件系统中改变。

编辑器通常用来修改单个数据元素,例如文件内容或对象数据,要将编辑器中的修改反映到底层数据结构,用户需要明确的保存编辑器内容。

例如,Java 编辑器用来编辑 Java 源文件,改变源文件需要选择保存按钮。一个未保存的编辑器标签页标题在文件名左边有一个星号。

Part 容器

Part stack 及 part sash 容器

Part 可以直接附属到窗口或透视图,它们也可以通过附加的模型元素组织排列,例如通过 Part 栈或者通过 Part Sash 容器元素。

一个 Part 栈包含一组Parts,一次只显示一个 Part 的内容,但是显示所有 Part 的标题标签。用户可以通过选择对应的标题标签来激活某个 Part。

Part Sash 容器同时显示所有的子元素,或者垂直的分布,或者水平的分布。

下面的屏幕截图显示了用 2 个 Part Sash 容器以及 3 个 Part 栈的 Eclipse 应用程序布局。

在上面的布局中,有一个水平的 Sash 容器包含另一个 Sash 容器以及一个 Part 栈,二级 Sash 容器包含 2 个 Part 栈,这个层次可以用下面的图描述:

为子元素使用布局权重数据

你可以用 Part Sash 容器的子元素的容器数据来分配布局权重。布局权重解释为相对于其他子元素的空间需求,设置参考下图:

如果你为容器的一个子元素设置了容器数据,那么你必须为所有其它子元素也定义容器数据,否则缺少定义的子元素将得到一个非常高的值,并占用所有有效的空间。

提示,容器所有的总空间初始值是在子元素移动的时候维护,为了平滑,这个总值必须接近屏幕精度,太小的值(例如 50/50)导致每个框格单元移动多个像素,用户感觉是不是自己移动的太快了。

透视图

透视图是可选的容器,包括一组 Parts,透视图可以用来存储不同的 Parts 布局,例如 Eclipse IDE 用它们来布局对应到开发人员希望执行的任务(开发、调试,等等)。

你可以将透视图放在应用程序模型的透视图栈中,可以通过 Eclipse 平台提供的 Parts 服务来切换透视图。