现在我可以在Eclipse WizardDialog / Editor中注册上下文帮助。

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&quot;&quot;在动态帮助下。

我知道我需要在某处创建这样的东西,但我不知道在哪里为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中引用了这个文件如果你引用自己的插件,请不要包含plugin-id。

 <extension
         point="org.eclipse.help.contexts">
         <contexts file="help_contexts.xml">
         </contexts>
   </extension>

3)我在build.properties中添加了一行,将此文件包含在bin目录中(bin.includes = help_contexts.xml,...)。请注意Manifest.MF中的Bundle-SymbolicName(也可以在plugin.xml编辑器中看到)。示例:my.plugin

4)在WizardPage中设置上下文ID(信用转到@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 为前缀,如:&quot; pluginID.contextID &quot ;.
  现在我不知道在哪里可以找到插件的插件ID。
  所以我使用了这个属性的值:来自 MANIFEST.MF Bundle-Name Bundle-Symbolic-Name 插件ID。
  现在它有效。


对于旁注( WizardDialog 的帮助),这个主题可能有所帮助(来自David Kyle 和他的博客“ Eclipse RCP &quot;):

  

我们在向导页面中设置了上下文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。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top