无论对于哪一种软件来说,缩短用户学习曲线的能力对于该软件的推广及其能否取得成功都是至关重要的。幸运的是,Eclipse 有了 User Assistance 项目(参见 参考资料),该项目包括能够使基于 Eclipse 的应用程序改善其最终用户体验的工具。根据 Eclipse User Assistance 项目的 Web 站点,该项目的目标是 “在 Eclipse 使用周期的所有阶段为该应用程序的用户提供帮助。它不是一个简单的工作台工件,而是一个提供特定协助的工件集合”。
本文通过一些示例和相关扩展点列表解释了其中一些工件。我们的目的不是深入研究每一个工件(见 参考资料),而是向那些希望为其用户提供帮助的开发人员引介这些工件。
Eclipse User Assistance 项目由很多组件构成,但是提供了三个主要的工具来协助用户:
- 欢迎框架
- 备忘单
- 帮助
用户启动 Eclipse 时会看到一个表示欢迎的屏幕。
图 1. Eclipse 欢迎屏幕
Eclipse 欢迎屏幕为用户提供了对教程和示例的便捷访问。如果您希望为自己的应用程序用户提供类似的东西,Eclipse 提供了欢迎框架。欢迎框架中有一些工具(用作欢迎内容),您可以使用它引导用户完成诸如初始设置之类的任务,或者提供对在线资源的便捷访问。可以使用原始的 SWT 部件指定欢迎内容,或者更典型的 —— 一系列集成的 Web 页面。为更好地理解典型的欢迎内容是什么样子,我们将使用插件开发环境(PDE) —— 使用一个模板 —— 来创建一个示例 RCP 应用程序来提供欢迎内容。
要利用 PDE 模板,先要创建一个新的插件项目(File > New > Project... > Plug-in Project)。需要强调一下,我们是在新的插件项目向导中创建一个 Rich Client Application。完成之后,将转向下个页面,我们可以使用一组模板创建一个项目。在本例中,需要选择 RCP application with an intro 模板。
图 2. RCP application with an intro
创建插件项目后,即可启动该应用程序,此时将看到弹出了一个新的欢迎屏幕。
图 3. RCP 应用程序显示欢迎屏幕
如果详细剖析生成的插件进行分解,将看到这里使用了一些扩展(参见表 1)。我们对 org.eclipse.ui.intro.config 扩展点的用法特别感兴趣,应用程序正是使用它链接到了 introContent.xml 文件。该文件包含到 XHTML 文件(即欢迎内容)的链接。 开始构建欢迎内容就是这么简单。
表 1. 相关欢迎框架扩展点
| 扩展点 | 描述 |
|---|---|
| org.eclipse.ui.intro | 用来将特定的产品和引导屏幕联系起来。 |
| org.eclipse.ui.intro.config | 用来创建一个引导配置。引导配置是 Eclipse 欢迎框架的一个基本构成部分。 |
| org.eclipse.ui.intro.configExtension | 用于将现有的引导配置扩展到更多内容。它还提供了将内容与特定配置分离的方法,以便使欢迎内容更具可重用性。 |
备忘单可看作是一组可完成特定任务的交互式指令。它提供了一种方法,通过脚本性质的交互操作引导用户完成一系列步骤,从而简化了用户所需操作的内容。比如说,假设您的应用程序需要用户创建特定类型的项目(例如,照片项目)来开始使用您的应用程序。备忘单允许您自动启动新的项目向导,而不是由用户手动启动。这类行为的一个很好的例子就是创建一个 Hello World 应用程序 备忘单。
图 4. 创建一个 Hello World 应用程序备忘单
Eclipse 提供了一种简单的方法,可通过一个新的编辑器来编辑这些备忘单(从 Eclipse V3.3 开始),图 5 显示了这个编辑器,通过 File > New > Other... > User Assistance > Cheat Sheet 即可访问它。这对于那些不希望直接使用 XML 格式的 Eclipse 备忘单文件的人来说更加简单。这个新的编辑器上面是一个允许您轻易链接到现有 Eclipse 命令的命令设计器。这将有效消除在 Eclipse 中手动使用命令的猜测性和易出错性。
图 5. 备忘单编辑器和命令设计器
下面列出了备忘单的有关扩展点。
表 2. 备忘单有关扩展点
| 扩展点 | 描述 |
|---|---|
| org.eclipse.ui.cheatsheets.cheatsheetContent | 用于记录备忘单内容的组成,这样才能在 Eclipse 的 Help 菜单中显示出来。 |
| org.eclipse.ui.cheatsheets.cheatSheetItemExtension | 为备忘单各项创建扩展。使您能够将新的属性引入到备忘单文件格式中,并且使用合适的方式处理它们。 |
如果您以前使用过 Eclipse 或 IBM® 产品,那么很可能对 infocenters 有所困惑。Infocenters 是 Eclipse 帮助系统的一部分,它能够使您编辑并组织内容,并且允许用户搜索该内容。可以在 Eclipse 内部访问这些内容(Help > Help Contents...)或者使用刚刚提到的 infocenters 通过浏览器访问。通常,帮助内容被组织为与 HTML 文件相链接的 XML 文件层次。如果您已经将帮助内容放到了诸如 Darwin Information Typing Architecture (DITA) 或 DocBook 这样的常见文档格式中,有几种方法可以将您的内容转换为可用的 Eclipse 帮助插件。
PDE 提供了一个非常优秀的模板,使您开始使用示例帮助内容。通过选择 Plug-in with sample help content 模板(见图 6),PDE 将创建一个初始项目,它包含 org.eclipse.help.toc 扩展点的扩展。创建项目后,仅启动一个新的运行时工作台并选择帮助(Help > Help Contents...)来查看您的帮助内容发挥作用。
图 6. 示例帮助内容模板
远程帮助现在已成为 Eclipse V3.3 的一个选项。这意味着您现在可以将帮助内容与实际的应用程序分离。您可以将承载帮助内容的服务器和应用程序指向帮助服务器(见图 7)。这样的话,当用户请求帮助时,当需要时将下载帮助内容。作为开发人员,您必须仔细考虑这点,因为如果您的用户工作在脱机环境下,他们将无法获得帮助,这是非常不利的。需要对减少应用程序下载内容的初始大小和完全在脱机环境下工作的便利性之前权衡。
图 7. 示例远程帮助设置
下面列出了 Eclipse 帮助的相关扩展点。
表 3. 帮助的相关扩展点
| 扩展点 | 描述 |
|---|---|
| org.eclipse.help.toc | 通过单个插件用于帮助内容。 |
| org.eclipse.help.index | 用于生成帮助内容使用的索引。 |
| org.eclipse.help.contexts | 通过单个插件提供对上下文敏感的帮助。 |
| org.eclipse.help.contentProducer | 用于提供在运行时动态生成的帮助内容。 |
| org.eclipse.help.contentExtension | 允许帮助系统重新使用可重用的帮助内容。 |
这篇文章介绍了 Eclipse 的用户辅助工具,并建议您(开发人员)考虑使用这样的工具来使您的最终用户受益。最后,良好且集成的文档将有助于缩短用户的学习曲线,Eclipse User Assistance 项目也提供了帮助用户入门的工具。
特此对 Dejan Glozic,Curtis D'Entremont,Lee Anne Kowalski 和 Chris Goldthorpe 在审阅本文时提供的 UA 经验表示感谢。
学习
- 您可以参阅本文在 developerWorks 全球站点上的 英文原文 。
-
查看 Eclipse User Assistance 项目。
-
了解更多关于 Eclipse Plug-in Development Environment (PDE) 的内容。
-
通过 Phillip Tiedt 的 developerWorks 文章 “在 Eclipse V3.2 中构建备忘单” 和教程 “在 Eclipse 中构建备忘单” 了解备忘单的开发。
-
阅读 “Writing Documentation and Help for Eclipse Projects and Plug-ins” 以了解如何使用 Eclipse 帮助系统。
-
查看 Eclipse documentation wiki。
-
访问 DocBook.org 和 DITA Web 站点了解更多关于这两种常见文档格式的内容。
-
阅读 “Darwin 信息类型化体系结构简介” 和 “专门化 DITA 主题类型” 了解 DITA。
-
参阅 developerWork 上发表的 DITA “Frequently Asked Questions about the Darwin Information Typing Architecture”。
-
通过阅读 Eclipse Foundation 的文章 “Authoring with Eclipse” 了解如何使用 Eclipse 进行编辑。
-
通过参加 EclipseCon 2007 了解 Eclipse User Assistance。
-
通过访问 Planet Eclipse 随时关注 Eclipse 社区发生的变化。
-
“Eclipse 平台入门” 是关于 Eclipse 平台的优秀介绍性文章。
-
查看 “推荐 Eclipse 阅读清单”。
-
浏览 developerWorks 上面所有的 Eclipse 文章 和 Eclipse 教程 。
-
查看 IBM developerWorks 的 Eclipse 项目资源中心 扩展您的 Eclipse 技能。
-
收听面向软件开发人员的访谈和讨论,查看 developerWorks 的 podcasts。
-
随时关注 developerWorks 的 技术活动和网络广播。
-
查看全球范围内 IBM 开源开发人员感兴趣的即将来临的会议、商业展览、网络广播和其他 活动。
-
访问 developerWorks 开源软件技术专区,提供了大量的 how-to 信息、工具和项目更新,帮助您使用开源技术进行开发并与 IBM 产品结合使用。
-
访问 Safari Books Online 中有关开源技术的大量参考资料。
获得产品和技术
-
下载 Eclipse Platform 并立即开始使用 Eclipse。
-
在 IBM alphaWorks 中查看最新的 Eclipse 技术下载 。
-
使用 IBM 试用软件 改进您的下一个开源开发项目,可下载或从 DVD 获得。
讨论
-
Eclipse Platform 新闻组 将是您讨论关于 Eclipse 问题的第一站。(选择这个链接将启动默认的 Usenet 新闻阅读器呈现应用程序并打开 eclipse.platform)。
-
Eclipse 新闻组 为对使用和扩展 Eclipse 感兴趣的用户提供了大量参考资料。
-
通过参与 developerWorks blog 加入 developerWorks 社区。

Chris Aniszczyk 是 IBM Lotus 的软件工程师,专门从事 OSGi 相关开发工作。他是开放源码的忠实拥护者,目前在开发 Gentoo Linux 发行版,他还是一些 Eclipse 项目(PDE、ECF、EMFT)的参与者。他十分 乐意与您讨论 关于开放源码和 Eclipse 方面的问题。