开发基于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页,点击"启动产品"。然后打开“帮助--> 帮助内容”,就可能看到你的帮助系统了。
    到此一个完整的帮助系统就完成了。下面是一个截图:
    
