V3.2 新增内容

下面是 Eclipse 发行版 3.2 中对 Eclipse 平台SWT 所作的一些对插件开发者有意义的更改的描述。

还提供了许多面向平台最终用户的新功能,“工作台用户指南”的新增内容一节对这些新功能作了阐述。

平台更改

运行时重构

为了使 Eclipse 运行时更灵活并允许独立地使用运行时组件,已将 org.eclipse.core.runtime 插件分为多个插件:

  • org.eclipse.equinox.common - 以前的运行时插件的多个部件(即,IPath、IStatus 和 IProgressMonitor)所使用的公共代码。
  • org.eclipse.equinox.registry - 扩展注册表。
  • org.eclipse.equinox.preferences - 首选项机制。
  • org.eclipse.core.jobs - 作业机制。
  • org.eclipse.core.contenttype - 内容机制。
  • org.eclipse.equinox.supplement - 补遗插件,用于支持在没有 OSGi 的情况下运行。

添加了新的 API,以简化对分散的运行时部件的控制。

运行时重构对于其他插件来说应该是透明的。要了解更多详细信息,请参阅 Eclipse 3.2 迁移指南。

公共导航器

新插件 org.eclipse.ui.navigator 引入了一个框架,用于构建将来自多个域模型的内容组合到一起的查看器。该框架允许以声明方式添加内容、标签、操作、过滤器和其他功能。org.eclipse.ui.navigator.resources 插件以项目资源管理器视图形式提供此框架的具体使用,并提供了 IResource 模型的声明性查看器扩展。

此图显示了项目资源管理器视图

选项卡式属性框架

添加了选项卡式属性框架。选项卡式属性框架提供了替换属性表页面,从而允许使用任意控件来在“属性”视图中显示属性,并根据通过扩展注册表添加的选项卡和窗口部分来对属性进行组织。

此图显示了选项卡式属性框架

请参阅 Eclipse 选项卡式属性视图一文以了解详细信息。

文件系统 API

新插件 org.eclipse.core.filesystem 引入了新的通用 API 来与文件系统进行交互。已将平台迁移为使用这个文件系统 API 来代替 java.io API。这意味着可以在任意后备文件系统中创建资源,并且插件可以提供对新文件系统类型的支持。

对项目和链接的资源的向导添加了支持,允许创建链接到其他文件系统的资源。定义了备用文件系统的插件可以通过使用 org.eclipse.ui.ide.filesystemSupport 扩展点来与此向导支持挂钩。

此图显示了非本地文件系统

对导入和导出向导添加了分类功能

现在,org.eclipse.ui.importWizardsorg.eclipse.ui.exportWizards 扩展点支持分类。

此图显示了扩展点

文本编辑器中的注释的工具提示

已将注释悬浮功能从 JDT 文本下推至平台文本。文本、垂直和概述标尺悬浮支持由文本编辑器使用的 TextSourceViewerConfiguration 安装:

此图显示了注释工具提示

文本编辑器中的注释导航

已将注释导航功能从 JDT 文本下推至平台文本。现在,所有文本编辑器都提供了此功能:

此图显示了导航图标

JFace 字段辅助

JFace 引入了新的支持来帮助用户填写对话框和表单中的字段。org.eclipse.jface.fieldassist 包提供的类允许使用图像和相应的悬浮文本来对任意控件进行修饰。这些类可以用于诸如标记对话框中的必填字段、显示基于字段的错误情况或者显示内容辅助提示之类的用途。该包还允许在控件上安装内容建议,其中包括带有内容建议的弹出对话框、用于提供进一步信息的辅助弹出对话框以及用于显式地调用建议或自动调用建议(提前输入)的选项。

此图显示了字段辅助

JFace TreeViewer 增强

现在,AbstractTreeViewer 支持在树中使用多个等同元素,并允许每个元素都有不同的父链。此支持要求客户机通过调用 setUseHashLookup(true) 来启用元素映射。

现在,TreeViewer 支持 SWT.VIRTUAL 树。有一个相应的惰性内容提供程序 ILazyTreeContentProvider,它仅根据需要返回内容。

支持动态帮助内容

现在,帮助系统支持动态地编写帮助内容。以 XHMTL 编写的主题可以包含其他特定于 Eclipse 的标记,以根据操作系统/窗口系统/体系结构值、插件的存在情况以及已启用的功能等来对内容进行快速过滤。可以将共享内容包括在多个文档中。最后,插件可以添加 XHTML 段以插入到其他文档中的锚点中。现在,所有这些功能都使信息开发者能够提供动态文档,这些文档将根据查看时的上下文来对自身进行定制。

帮助搜索增强功能

用户辅助索引和搜索功能已在各个方面得到增强。可以通过扩展点来注册其他搜索参与者,从而将内容添加到 Lucene 索引中。现在,帮助系统添加了 XHTML 搜索参与者,该搜索参与者可以对以 XHMTL 编写的动态帮助文档建立索引(请参阅以上内容)。此外,以前未包含在索引中的文档(例如,备忘单和欢迎页面)现在也将出现。现在,搜索匹配项可以具有不同的图标,而“打开”操作可以由搜索引擎执行。

此图显示了搜索增强功能

可以对问题进行分组

现在,可以在“问题”视图中对问题进行分组。缺省分组是按严重性和问题类型进行的。通过 org.eclipse.ui.ide.markerSupport 扩展点,可以定义其他组。

改进了对话框中的帮助

现在,Eclipse 中的大多数对话框在左下角都提供了标准的帮助按钮。按此按钮将请求上下文帮助,这与在 Windows 上按 F1 键相同。此外,帮助内容现在显示在对话框的托盘中,而不是显示在单独的窗口中。定制对话框可以通过创建新的 TrayDialog 类(而不是 Dialog 类)的子类来继承此功能。对于那些涉及打开对话框的步骤,也可以使用备忘单来打开对话框(在托盘中提供备忘单)。

在用户辅助内容中嵌入命令链接

现在,帮助、备忘单和简介内容中的链接在被用户激活后可以执行命令。可以使用命令链接来打开首选项页、启动向导、显示视图、打开透视图以及完成许多其他任务。命令框架可扩展,因此命令链接有许多其他用途。已使用命令链接对工作台用户指南中的多处进行了增强。下图显示了一个帮助主题中的两个命令链接:

帮助主题中的命令链接

支持从备忘单中启动命令

现在,可以从备忘单中启动命令。以下内容文件包含用来打开“搜索”视图和包资源管理器的命令。
<?xml version="1.0" encoding="UTF-8"?>
<cheatsheet title="Example of Commands in a Cheat Sheet">
  <intro>

    <description>A cheat sheet shows the
			package explorer</description>
  </intro>
  <item title="Show Search View">
     <description>This is a step with a command
		which shows the search view.</description>

     <command serialization=
		"org.eclipse.search.ui.views.SearchView"/>  
  </item>
  <item title="Step 2">
    <description>This is a step with a command and
		parameters, shows package explorer.</description>

     <command serialization="org.eclipse.ui.views.showView(
		org.eclipse.ui.views.showView.viewId=
		org.eclipse.jdt.ui.PackageExplorer)"/> 
     <onCompletion>
         Command example completed.
     </onCompletion>
  </item>
</cheatsheet>

完成消息

可以在备忘单的步骤中添加完成消息,这样,完成该步骤时,就会显示此完成消息。

此图显示了备忘单完成消息

组合备忘单

组合备忘单是 Eclipse 3.2 的新增内容。组合备忘单通过将大型问题分解成小型任务(每个任务都有自己的备忘单)来为您解决这些问题提供指导。任务可以分组。组合备忘单将在备忘单视图中打开,并且是使用备忘单选择对话框启动的。每个任务都包含描述,超链接指导用户完成一系列任务。

此图显示了组合备忘单

组合备忘单包含一个树,该树显示了任务及其状态。右边/下方的面板包含各个任务。

此图显示了组合备忘单

组合备忘单的内容是在 XML 文件中定义的。内容文件可以指定任务之间的依赖关系,从而使得某个任务只能在所有必备任务完成后才能启动。

帮助关键字索引

现在,帮助系统包含关键字索引。您可以向该索引注册文档中的关键字并提供指向适当帮助内容的链接。“帮助”视图(如下所示)和“帮助”窗口都提供了该索引。

注意:索引内容尚不适用于 SDK(仅当有内容可用时,才会显示索引)。

此图显示了“帮助”视图

XHTML 帮助文档转换工具

PDE 提供了一个新的实用程序来将插件的 HTML 帮助文档快速转换为 XHTML。 除了将 HTML 转换为有效的 XHTML 以外,该工具还将更新文件扩展名和目录, 并添加必要的绑定以启用动态内容和实现 XHTML 内容搜索功能。进行此项转换之后,用户就可以利用新的 3.2 版帮助系统功能,例如动态内容过滤、内容复用以及添加动态内容,这些新功能都要求使用 XHTML 作为内容格式。

可以通过从插件项目的上下文菜单中选择 PDE 工具 > 将帮助文件转换为 XHTML 来调用此功能。

此图显示了 XHTML 转换工具

通用欢迎

现在,根据我们在具体的“欢迎”实现中所获得的经验,我们提供了可配置的“通用欢迎”来供任何产品使用。产品可以在 7 个预定义的主要部分之间进行选择:概述、第一步、教程、样本、新增内容、Web 资源以及迁移(Eclipse SDK 使用了其中 4 个)。“通用欢迎”为每个添加项都指定了可配置的页面布局和重要性级别,并且全面支持主题。它还同时提供了涵盖整个平台的 HTML 和 SWT 表示。

最终用户可以通过“通用欢迎”提供的“欢迎”首选项页来对“欢迎”进行定制,并且任何需要提供“欢迎”首选项页的产品都可以包括该页。要了解有关“通用欢迎”的更多信息,请参阅“通用欢迎”规范

此图显示了“通用欢迎”

“欢迎”对配置和主题的支持

“简介”框架提供了更强的可配置性支持。可以添加简介配置程序以提供一次性组子代计算、变量替换支持以及延迟锚点路径解析功能。此支持在“通用欢迎”中得到大量使用,但也可以在其他“欢迎”实现中使用。

主题表示 CSS 文件、属性和图像的命名集合,它们共同定义“欢迎”内容的外观。在 3.2 版中,“通用欢迎”通过提供主题选择功能和两个具体的主题(“圆圈”和“紫色的网”)来利用此支持。

此图显示了“欢迎”中的主题

对 Ant 扩展点的名称空间支持

现在,org.eclipse.ant.coreantTasksantTypes 扩展点允许指定应该用于存放定义的 URI。请参阅错误 133190 以了解所有更改的全部详细信息。

对逻辑模型集成的小组支持

已添加了允许逻辑模型参与小组操作的 API。借助此 API,小组提供程序可以:
  • 查询模型以确保所有必需资源都包括在小组操作中。
  • 使用模型语义来帮助解析合并冲突。
  • 允许模型在小组操作期间参与资源的显示。

与 Java 和资源模型同步

SWT 更改

表和树中的排序指示符

现在,表和树支持在列标题中显示排序方向指示符。

此图显示了排序方向指示符

提供了说明按列排序(简单)按列排序(虚拟表)的 SWT 片段。

可对树中的列进行重新排序

在 Eclipse 3.1 中,添加了对表中的列进行重新排序的功能。现在,对树也添加了该支持。

可以通过拖动列标题来更改树中各列的显示顺序,也可以通过编程来设置此顺序。

此图显示了可重新排序的列

示例片段

改进了 XP 主题支持

现在,在 Windows XP 上,SWT 可以在选项卡文件夹中显示纹理背景。组、标签和复选框等对于此背景都是透明的。并且,定制窗口小部件(例如 StyledText)现在还能够显示常用 Windows XP 主题的正确边框。

此图显示了 XP 主题支持

请参阅 SWT 常见问题以获取有关如何与 Windows XP 皮肤配合运行的指示信息。

动画 GIF

可以将动画 GIF 图像保存到文件中。

此图显示了动画 GIF 支持

要获取示例,请参阅 SWT 片段

桌面外观通知

更改桌面的外观设置(例如,主题、字体或缺省颜色)时,将对 Display 发出 SWT.Settings 事件。

此图显示了桌面外观通知

废弃通知

以前,在接收到父代组合体的 SWT.Dispose 事件时,所有子代都会被废弃,导致无法进行引用。在 3.2 版中,将在操作系统释放子代之前接收到废弃事件。

列的工具提示

可以通过使用 TableColumn/TreeColumn.setTooltipText(String) 来对表或树的列标题设置工具提示文本。

垂直 CoolBar

可以通过使用 SWT.VERTICAL 样式来创建垂直 CoolBar。

此图显示了垂直 CoolBar

OpenGL 支持

现在,可以在 SWT 应用程序中使用 OpenGL。OpenGL 接口使用第三方 OpenGL 库(例如,LWJGL)。

此图显示了 OpenGL 示例

要获取示例,请参阅 SWT 片段。

虚拟树

现在,树支持 SWT.VIRTUAL 样式。这使您能够快速地创建包含大量数据的树。可以根据需要创建 TreeItem。

要获取示例,请参阅 SWT 片段

带有图像和文本的按钮

现在,按钮可以同时显示图像和文本。Windows XP、Mac OS X 和 GTK 都支持此功能。

此图显示了带有图像的按钮

Mac OS X 上的 HIView

现在,SWT 可以利用 Mac OS X 上的 HIView。这解决了许多裁剪和缩放大小问题。

在文本中嵌入对象

现在,可以使用 TextLayout 来在文本中嵌入对象(例如,图像或窗口小部件)。可以指定图像字符度量值(例如,升幅、降幅和宽度)。那些对象将与文本包装在一起。

此图显示了嵌入在文本中的图像

要获取示例,请参阅 SWT 片段

文本缩进、对齐和两端对齐

现在,TextLayout 支持文本缩进、对齐和两端对齐。

此图显示了已对齐的文本

要获取示例,请参阅 SWT 片段

提升文本基线

现在,可以使用 TextLayout 和 TextStyle 来指定对某个范围内的文本提升基线。

此图显示了已提升基线的文本

要获取示例,请参阅 SWT 片段

HSB 颜色支持

可以通过指定色度、饱和度和亮度来创建颜色。此外,对于给定的颜色,可以查询色度、饱和度和亮度值。

此图显示了 HSB 支持

要获取示例,请参阅 SWT 片段

StyledText 对齐、缩进和两端对齐

现在,StyledText 支持文本缩进、对齐和两端对齐。

此图显示了已对齐的 StyledText

要获取示例,请参阅 SWT 片段

在 StyledText 中嵌入对象

现在,StyledText 允许在文本中嵌入对象(例如,图像或窗口小部件)。那些对象将与文本包装在一起。

此图显示了文本中的嵌入式图像

要获取示例,请参阅 SWT 片段

背景图像

可以在控件中设置背景图像。此外,诸如标签之类的子代窗口小部件可以继承背景。

此图显示了控件中的背景图像

要获取示例,请参阅 SWT 片段

本机图像装入

现在,构造函数 Image(Device device, String filename) 通过使用本机操作系统调用来装入图像。这不仅提高了图像装入性能,而且还增大了可以装入的图像的最大大小。

拖动文本

如果将 Text 或 StyledText 与 SWT.DragDetect 事件挂钩,那么,当用户在所选文本范围内拖动鼠标时,不会清除所选项。此功能使您能够在 Text 和 StyledText 窗口小部件中进行拖动。

要获取示例,请参阅此 SWT 片段

新的 ExpandBar 窗口小部件

ExpandBar 窗口小部件允许用户通过单击头来显示和隐藏窗口小部件集合。ExpandBar 包含多个项,每个项的头都可以包含图像和标题。

此图显示了已隐藏的窗口小部件

要获取示例,请参阅此 SWT 片段

StyledText 中的项目符号

现在,StyledText 可以显示各种样式的列表,包括项目符号、编号、大写或小写字母以及定制样式。

此图显示了 StyledText 中的项目符号

要获取示例,请参阅此 SWT 片段

以定制方式绘制树

现在,树窗口小部件支持以定制方式绘制各个单元格。应用程序可以通过以定制方式显示数据来增强树的固有外观。应用程序可以控制行高,因此可以绘制多行文本。此外,它还可以在同一个单元格中显示多幅图像、多次更改字体或颜色以及更改所选项的绘制方式。

此图显示了以定制方式绘制的各个树单元格

要获取示例,请参阅下列片段:

以定制方式绘制表

现在,表窗口小部件支持以定制方式绘制各个单元格。在仍然保留表的固有外观的同时,用户可以定制单元格的绘制方式,以便以除带图像文本以外的方式来显示数据、在一个单元格中显示多行文本、多次更改同一个单元格中的字体和颜色以及覆盖本机所选项绘制方式等。

此图显示了以定制方式绘制各个表单元格

要获取示例,请参阅下列片段:

表和树的拖过效果

现在,表和树窗口小部件提供了所拖动的项目的视觉反馈。

此图显示了拖动反馈

新的工具提示类

可以使用新的工具提示类来显示未直接与控件绑定的工具提示。这些工具提示可以放在任何位置,而且可以使用平台缺省外观或气球外观(如下所示)。

此图显示了气球样式的工具提示