码迷,mamicode.com
首页 > 其他好文 > 详细

rcp添加帮助系统

时间:2014-07-21 11:35:15      阅读:345      评论:0      收藏:0      [点我收藏+]

标签:help contents   org.eclipse.help.toc   org.eclipse.help.con   上下文敏感帮助   

在RCP中,也可以利用Eclipse Help构建自己的帮助系统。Eclipse 帮助系统包括静态,动态和上下文敏感的帮助,这些都可以应用到RCP中。
在RCP中,加入帮助,也是通过plugin,如果要帮助要依赖于指定的plugin,也可以做成fragment的形式,这里是以plugin的形式。
要实现完整的帮助功能,需要在plugin.xml 依赖中添加以下插件:
添加插件
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.ui.forms
7. org.eclipse.equinox.http.jetty(未添加该插件,我运行时提示错误)
然后在自己创建的xxx.product文件中的依赖项中点击添加需要插件(Add Required Plug-ins)

添加帮助菜单中添加Help Contents

       在RCP的ActionBarAdvisor.makeActions()方法中实例化Help Constents Action,并注册到工作台中

private IWorkbenchAction helpContenstsAction;//先声明一个Action

helpContenstsAction = ActionFactory.HELP_CONTENTS.create(window);
        register(helpContenstsAction);
在方法fillMenuBar()中,在help 菜单中添加helpContenstsAction.

MenuManager helpMenu = new MenuManager("&Help", IWorkbenchActionConstants.M_HELP);
		helpMenu.add(helpContenstsAction);
加入帮助内容

帮助文件就是一组html格式的文件,要加入到帮助系统中必须要有一个定义帮助文件结构的配置文件,是xml格式。帮助文件的内容需要资料人员制作成标准的html文件即可。为了美观性,也可以加入css

在plugin.xml中添加扩展点org.eclipse.help.toc

 <!--该扩展点告诉帮助系统所有的toc文件,toc文件中定义了帮助的显示结构,它们显示在帮助对话框的左边。-->
 <extension
       point="org.eclipse.help.toc">
    <toc
          file="toc/ActivityToc.xml">
    </toc>
    <toc
          file="toc/DesignerToc.xml"
          primary="true"><!--保证该文件在帮助对话框中永远显示-->
    </toc>
 </extension>
此扩展点告诉帮助系统所有的toc文件,toc文件中定义的帮助的显示结构,它们显示在帮助对话框的左边。这个扩展点标示了2个toc 文件,它们都是位于帮助的顶级。其中toc.xml标示为primary,保证其在帮助对话框中永远显示。ActivityToc.xml也可以不添加。
DesignerToc.xml

<?xml version="1.0" encoding="UTF-8"?>
<?NLS TYPE="org.eclipse.help.toc"?>

<toc label="定义器帮助" topic="help/maintopic.html">
	 <topic label="工具">
	 	<topic label="向导">
	 		<topic label="导入JTangFlow工程向导" href="help/tools/wizard/ImportWizard.html"/>
	 	</topic>
	 </topic>
</toc>
ImportWizard.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<title>导入workFlow工程</title>
</head>

<body>
<h1>导入workFlow工程</h1>
<table width="600" border="1" align="left" >
<tbody><tr>
<td>选项</td>
<td>描述 </td></tr>
<tr>
<td>选择导入源</td>
<td>选择“workFlow 工程导入”</td></tr>
<tr>
<td>选择文件</td>
<td>即选择本地需要导入的workFlow的流程定义文件</td></tr>
<tr>
<td>重置所有ID</td>
<td>即把流程定义文件所有的模型ID进行重置</td></tr>
</tbody></table>
</body>
</html>
运行Rcp,可以在帮助对话框中看到刚才加入的帮助内容

bubuko.com,布布扣

添加上下文敏感帮助
Plugin.xml中添加扩展点 org.eclipse.help.contexts

<extension
       point="org.eclipse.help.contexts">
    <contexts
          file="HelpContexts.xml"
          plugin="MyDesigner">
    </contexts>
 </extension>
HelpContexts.xml 文件中定义了上下文id和显示内容的映射

<?xml version="1.0" encoding="UTF-8"?>
<contexts>		
	<context id="ImportWizard">
		<description> 
			导入workFlow工程向导
		</description>
		<topic href="help/tools/wizard/ImportWizard.html" label="导入workFlow工程向导" />
	</context>
</contexts>
HelpUtil 帮助文档操作类

import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.PlatformUI;
/**
 * 帮助文档操作类
 * @author lww
 *
 */
public class HelpUtil
{
	public static void setHelp(Control control, String localContextId)
	{
		if (control == null)
			return;
		PlatformUI.getWorkbench().getHelpSystem().setHelp(control,WorkFlowActivator.PLUGIN_ID + "." + localContextId);
	}
}
WorkFlowActivator.PLUGIN_ID是获取当前插件的plugin id 
我在导入文件的WizardPage方法createControl中添加了上下文敏感帮助

HelpUtil.setHelp(topComp,"ImportWizard");//设置点击帮助后显示的内容  topComp是createControl方法中的面板对象 ,ImportWizard是HelpContexts.xml文件中定义ID,
若你的import 中没有显示帮助按钮图标,很有可能是你当前RCP没有启动帮助系统

只需要在WorkbenchAdvisor的方法initialize初始化方法中激活向导页的help按钮

TrayDialog.setDialogHelpAvailable(true);//激活向导页的help按钮
这样在运行导入时,就可以看到帮助上下文

bubuko.com,布布扣
参考文章:http://blog.csdn.net/moneyice/article/details/715795











rcp添加帮助系统

标签:help contents   org.eclipse.help.toc   org.eclipse.help.con   上下文敏感帮助   

原文地址:http://blog.csdn.net/luoww1/article/details/38012217

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!