[置顶] 欢迎您。今天是2022年12月01日。

由于要做RCP的演讲幻灯片,所以今天把RCP的帮助功能研究了一下,对于基本的功能实现暂且不说,因为比较简单,现在对上下文敏感帮助的功能实现做下说明。

对于各种控件,例如窗口、按钮、菜单等,Eclipse提供了上下文敏感帮助。上下文敏感帮助可以为用户提供动态的、弹出式的帮助信息,以提高系统的易用性,用户可以在一个命令按钮上按F1键以获得该按钮的操作信息。

1. 在plugin.xml中添加扩展点
    <extension point="org.eclipse.help.contexts">
  <contexts file="RssView.xml" />
  <contexts file="ChannelTreeView.xml" />
</extension>

org.eclipse.help.contexts 指上下文帮助的扩展点
contexts 指上下文帮助的配置文件。

2. 编写配置文件RssView.xml

根据plugin.xml中的设置,把RssView.xml文件放置在项目的根目录下(和src目录平级)。该文件主要是把帮助信息分门别类,并定义好某项帮助的id、名称、注释和对应的html帮助文件。

    <?xml version="1.0" encoding="UTF-8"?>
<?NLS TYPE="org.eclipse.help.toc"?>
<contexts>
  <context id="RssView">
    <description>系统功能简介</description>
    <topic label="商都" href="http://www.zz.ha.cn" />
    <topic label="搜狐" href="http://www.sohu.com" />
  </context>
</contexts>

id 帮助信息ID标识。(id的值需要和后边的配置一致)
description 显示帮助信息时的标题栏文字。
href 帮助信息子项所对应的帮助文件。
label 显示帮助信息时,子项的显示名称。

3. 将帮助信息和界面组件关联起来

将帮助信息和对应的界面组件关联起来,这样当焦点在此组件上时,按F1键才能显示出属于该组件的帮助。

IWorkbenchHelpSystem helpSystem = this.getSite().getWorkbenchWindow().getWorkbench().getHelpSystem();
helpSystem.setHelp(this.viewer.getControl(), Activator.PLUGIN_ID +".RssView");

setHelp方法的第一个参数是和上下文帮助关联的组件对象,第二个参数由插件的ID标识(MANIFEST.MF 文件的Bundle-SymbolicName项)和上下文帮助项的Id标识组成。

注意上面的 ".RssView" 和xml中的值一致,别忘了写 "."。

您可能也喜欢

今天给RCP打包测试,遇到了以前的遗留问题,就是打包后配置文件丢失,导致一些功能实现不了,从而用了硬编码实现,今天闲来无事,偶然间把问题解决了。以前用的配置文件格式是ini的,在查看了几个配置文件都是properties格式能打包进去后,我也把ini改成了properties,竟然成功。呵呵~爽啊~

二维码
摄像头