开发基于Eclipse开的RCP软件可以直接加入Eclipse的帮助系统,使您的产品更加完善。Eclipse帮助系统提供的良好组织模式以及基于lucene的全文搜索功能。在Eclipse的网站上有一篇文章专门介绍如何为Mail示例RCP添加帮助系统的,但是写的不完全,按照里面的说明添加后无法正常地显示帮助框架。网上有少部分文章也提及这个主题,但是都没有说明白。
经过一翻摸索,最后终于折腾出来,在这里记录下面,与大家分享。如果你做过RCP产品,下面这些内容应该很熟悉。
1. 添加帮助的菜单。
在ApplicationActionBarAdvisor类中加入帮助菜单项。代码片断如下:
//帮助
private IWorkbenchAction helpAction;
/**
* 创建操作
*/
protected void makeActions(IWorkbenchWindow window) {
....
/* 帮助 */
.....
helpAction = ActionFactory.HELP_CONTENTS.create(window);
register(helpAction);
.....
}
/**
* 填充主菜单
*/
protected void fillMenuBar(IMenuManager menuBar) {
/* 主菜单栏 */
IMenuManager mainMenu = getActionBarConfigurer().getMenuManager();
MenuManager helpMenu = new MenuManager("帮助(&H)", IWorkbenchActionConstants.M_HELP);
helpMenu.add(introAction);
helpMenu.add(helpAction);
....
mainMenu.add(helpMenu);
}
2. 添加相关的依赖项。
打开plugin.xml,转到"依赖项"的tab页,点击"添加"按钮,需要加入下面的这些依赖项:
1. org.apache.lucene
2.org.eclipse.help.appserver
3.org.eclipse.help.base
4.org.eclipse.help.ui
5.org.eclipse.help.webapp
6.org.eclipse.tomcat
7.org.eclipse.ui.forms
3. 添加org.eclipse.help.toc扩展点
这个非常容易,转到"扩展"tab页,点击“添加”按钮。网上或是相关的书籍有很多关于添加help内容的介绍,为了节省篇幅,这里直接添加一个扩展向导来完成。选择"扩展向导"-->"帮助内容",确定后可以看到“所有扩展”的列表中多了一个org.eclipse.help.toc扩展,这里可能需要修改一下,生成的toc.xml和testToc.xml里面的label属性标签不能是乱码,不然帮助框架会读不出,到时候显示不出帮助的组织结构。
结构如下:
<extension
point="org.eclipse.help.toc">
<toc file="toc.xml"/>
<toc
file="testToc.xml"
primary="true"/>
</extension>
4. 部署产品配置
为您的RCP添加一个产品配置,打开产品配置编辑器(xxx.product),转到"配置"tab页,点击“添加”,加入你的插件,然后点击“添加必需的插件”,这样在“插件和段”列表会看到你的插件以及你的RCP要完整启动的所有必需相关插件。在这里你应该看到你在plugin.xml中依赖的那七个help相关的插件,以及一些以nl1结尾的插件,这些是语言插件。保存,转到“概述”tab页,点击"启动产品"。然后打开“帮助--> 帮助内容”,就可能看到你的帮助系统了。
到此一个完整的帮助系统就完成了。下面是一个截图: