添加完整的Eclipse RCP幫助系統(tǒng)
Posted on 2007-10-25 10:30 寒武紀(jì) 閱讀(8944) 評(píng)論(3) 編輯 收藏 所屬分類: Eclipse 開發(fā)基于Eclipse開的RCP軟件可以直接加入Eclipse的幫助系統(tǒng),使您的產(chǎn)品更加完善。Eclipse幫助系統(tǒng)提供的良好組織模式以及基于lucene的全文搜索功能。在Eclipse的網(wǎng)站上有一篇文章專門介紹如何為Mail示例RCP添加幫助系統(tǒng)的,但是寫的不完全,按照里面的說(shuō)明添加后無(wú)法正常地顯示幫助框架。網(wǎng)上有少部分文章也提及這個(gè)主題,但是都沒(méi)有說(shuō)明白。
經(jīng)過(guò)一翻摸索,最后終于折騰出來(lái),在這里記錄下面,與大家分享。如果你做過(guò)RCP產(chǎn)品,下面這些內(nèi)容應(yīng)該很熟悉。
1. 添加幫助的菜單。
在ApplicationActionBarAdvisor類中加入幫助菜單項(xiàng)。代碼片斷如下:
打開plugin.xml,轉(zhuǎn)到"依賴項(xiàng)"的tab頁(yè),點(diǎn)擊"添加"按鈕,需要加入下面的這些依賴項(xiàng):
3. 添加org.eclipse.help.toc擴(kuò)展點(diǎn)
這個(gè)非常容易,轉(zhuǎn)到"擴(kuò)展"tab頁(yè),點(diǎn)擊“添加”按鈕。網(wǎng)上或是相關(guān)的書籍有很多關(guān)于添加help內(nèi)容的介紹,為了節(jié)省篇幅,這里直接添加一個(gè)擴(kuò)展向?qū)?lái)完成。選擇"擴(kuò)展向?qū)?-->"幫助內(nèi)容",確定后可以看到“所有擴(kuò)展”的列表中多了一個(gè)org.eclipse.help.toc擴(kuò)展,這里可能需要修改一下,生成的toc.xml和testToc.xml里面的label屬性標(biāo)簽不能是亂碼,不然幫助框架會(huì)讀不出,到時(shí)候顯示不出幫助的組織結(jié)構(gòu)。
結(jié)構(gòu)如下:
4. 部署產(chǎn)品配置
為您的RCP添加一個(gè)產(chǎn)品配置,打開產(chǎn)品配置編輯器(xxx.product),轉(zhuǎn)到"配置"tab頁(yè),點(diǎn)擊“添加”,加入你的插件,然后點(diǎn)擊“添加必需的插件”,這樣在“插件和段”列表會(huì)看到你的插件以及你的RCP要完整啟動(dòng)的所有必需相關(guān)插件。在這里你應(yīng)該看到你在plugin.xml中依賴的那七個(gè)help相關(guān)的插件,以及一些以nl1結(jié)尾的插件,這些是語(yǔ)言插件。保存,轉(zhuǎn)到“概述”tab頁(yè),點(diǎn)擊"啟動(dòng)產(chǎn)品"。然后打開“幫助--> 幫助內(nèi)容”,就可能看到你的幫助系統(tǒng)了。
到此一個(gè)完整的幫助系統(tǒng)就完成了。下面是一個(gè)截圖:

剛進(jìn)場(chǎng)的時(shí)候戲就落幕
經(jīng)過(guò)一翻摸索,最后終于折騰出來(lái),在這里記錄下面,與大家分享。如果你做過(guò)RCP產(chǎn)品,下面這些內(nèi)容應(yīng)該很熟悉。
1. 添加幫助的菜單。
在ApplicationActionBarAdvisor類中加入幫助菜單項(xiàng)。代碼片斷如下:
//幫助
private IWorkbenchAction helpAction;
/**
* 創(chuàng)建操作
*/
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. 添加相關(guān)的依賴項(xiàng)。private IWorkbenchAction helpAction;
/**
* 創(chuàng)建操作
*/
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);
}
打開plugin.xml,轉(zhuǎn)到"依賴項(xiàng)"的tab頁(yè),點(diǎn)擊"添加"按鈕,需要加入下面的這些依賴項(xiàng):
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
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擴(kuò)展點(diǎn)
這個(gè)非常容易,轉(zhuǎn)到"擴(kuò)展"tab頁(yè),點(diǎn)擊“添加”按鈕。網(wǎng)上或是相關(guān)的書籍有很多關(guān)于添加help內(nèi)容的介紹,為了節(jié)省篇幅,這里直接添加一個(gè)擴(kuò)展向?qū)?lái)完成。選擇"擴(kuò)展向?qū)?-->"幫助內(nèi)容",確定后可以看到“所有擴(kuò)展”的列表中多了一個(gè)org.eclipse.help.toc擴(kuò)展,這里可能需要修改一下,生成的toc.xml和testToc.xml里面的label屬性標(biāo)簽不能是亂碼,不然幫助框架會(huì)讀不出,到時(shí)候顯示不出幫助的組織結(jié)構(gòu)。
結(jié)構(gòu)如下:
<extension
point="org.eclipse.help.toc">
<toc file="toc.xml"/>
<toc
file="testToc.xml"
primary="true"/>
</extension>
point="org.eclipse.help.toc">
<toc file="toc.xml"/>
<toc
file="testToc.xml"
primary="true"/>
</extension>
4. 部署產(chǎn)品配置
為您的RCP添加一個(gè)產(chǎn)品配置,打開產(chǎn)品配置編輯器(xxx.product),轉(zhuǎn)到"配置"tab頁(yè),點(diǎn)擊“添加”,加入你的插件,然后點(diǎn)擊“添加必需的插件”,這樣在“插件和段”列表會(huì)看到你的插件以及你的RCP要完整啟動(dòng)的所有必需相關(guān)插件。在這里你應(yīng)該看到你在plugin.xml中依賴的那七個(gè)help相關(guān)的插件,以及一些以nl1結(jié)尾的插件,這些是語(yǔ)言插件。保存,轉(zhuǎn)到“概述”tab頁(yè),點(diǎn)擊"啟動(dòng)產(chǎn)品"。然后打開“幫助--> 幫助內(nèi)容”,就可能看到你的幫助系統(tǒng)了。
到此一個(gè)完整的幫助系統(tǒng)就完成了。下面是一個(gè)截圖:

剛進(jìn)場(chǎng)的時(shí)候戲就落幕