现在,我可以注册在Eclipse WizardDialog /编辑器上下文帮助。
1)我创建了一个help_contexts.xml文件。
<?xml version="1.0" encoding="UTF-8"?>
<?NLS TYPE="org.eclipse.help.contexts"?>
<contexts>
<context id="my.plugin.help.general" >
<description>test</description>
<topic label="test" href="http://domain.com/help.html"/>
</context>
</contexts>
2)我在plugin.xml中引用此文件
<extension
point="org.eclipse.help.contexts">
<contexts file="help_contexts.xml" plugin="my.plugin.MainEditor">
</contexts>
</extension>
3)我加在我的build.properties一行包括在bin目录下这个文件(bin.includes = help_contexts.xml,...)
4)当我运行基于GEF-插件,我看到“不匹配发现‘my.plugin.MainEditor’”下的动态帮助。
我知道我需要创造这样的地方,但我不知道在哪里可以设置此为我WizardDialog或至少我的整个编辑:
public void createPartControl(Composite parent) {
...
PlatformUI.getWorkbench().getHelpSystem().setHelp(parent,
"my.plugin.help.general");
}
注意:这个问题最初包含两个问题。 我已经删除了第一(未回答的一部分)在其他地方发布。
这里是你如何做到这一点:1)我创建了一个help_contexts.xml文件。 不要在上下文ID周期。 不要在有很多,包括你的插件名称。
<?xml version="1.0" encoding="UTF-8"?>
<?NLS TYPE="org.eclipse.help.contexts"?>
<contexts>
<context id="help_general" >
<description>test</description>
<topic label="test" href="http://domain.com/help.html"/>
</context>
</contexts>
2)我引用我的plugin.xml这个文件不包括插件-ID,如果你正在引用自己的插件。
<extension
point="org.eclipse.help.contexts">
<contexts file="help_contexts.xml">
</contexts>
</extension>
3)我加在我的build.properties一行包括在bin目录下这个文件(bin.includes = help_contexts.xml,...)。 注意你的包-SymbolicName你的Manifest.MF(在plugin.xml编辑器还可见)。 例如:my.plugin
4)设置上下文ID在WizardPage(归功于@VonC)
public class MyWizardPage extends WizardPage
public void createControl(Composite parent) {
PlatformUI.getWorkbench.getHelpSystem.setHelp(parent, "my.plugin.help_general");
}
}
对于主要的问题,我不知道你的setHelp第二个参数。 见这个线程 :
在方法调用
PlatformUI.getWorkbench().getHelpSystem().setHelp()
第二个参数是contextID
。
它应与前缀pluginID
像:“ pluginID.contextID
”。
现在,我不知道在哪里可以找到插件ID为我的插件。
所以我用这个属性的值: Bundle-Name
Bundle-Symbolic-Name
从MANIFEST.MF
作为插件ID。
现在,它的工作原理。
对于阿里纳斯(求助WizardDialog
), 这个线程可能会帮助(从大卫凯尔和他的博客“ 的Eclipse RCP ”):
我们在向导页面设置上下文ID。
public class MyWizardPage extends WizardPage
public void createControl(Composite parent) {
PlatformUI.getWorkbench.getHelpSystem.setHelp(parent,
MyPluginActivator.ID + ".mycontexthelpid");
}
}
我们设置向导对话框的帮助。
WizardDialog dialog = new WizardDialog(.....);
PlatformUI.getWorkbench().getHelpSystem().setHelp(dialog.getShell(),
"mycontexthelp.id");
我们不会覆盖performHelp()
至于帮助上下文ID。 定义你的插件上下文xml文件。
<?xml version="1.0" encoding="UTF-8"?>
<?NLS TYPE="org.eclipse.help.contexts"?>
<contexts>
<context id="mycontexthelpid" >
<description>My wizard help.</description>
<topic label="Wizard help" href="reference/wizard/help.xhtml"/>
</context>
</contexts>
在你的插件
<plugin>
<extension point="org.eclipse.help.contexts">
<contexts file="mywizard.xml" plugin="com.mypluginid"/>
</extension>
</plugin>
一个常见的问题是搞乱插件和上下文帮助id。 您可以设置几个破发点看到正在请求哪个上下文ID。