Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse gef Eclipse上下文帮助_Eclipse Gef - Fatal编程技术网

Eclipse gef Eclipse上下文帮助

Eclipse gef Eclipse上下文帮助,eclipse-gef,Eclipse Gef,现在我可以在Eclipse向导对话框/编辑器中注册上下文帮助了 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

现在我可以在Eclipse向导对话框/编辑器中注册上下文帮助了

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>

注:本问题原包含两个问题。我已经删除了第一个(未回答的部分)要发布到其他地方。

对于主要问题,我不确定setHelp第二个参数。见:

在方法调用中

第二个参数是
contextID

它应该以
pluginID
作为前缀,比如:“
pluginID.contextID

现在我不确定在哪里可以找到我的插件的插件ID。
因此,我使用了这个属性的值:
Bundle Name
Bundle Symbolic Name
from
MANIFEST.MF
作为插件ID。
现在它起作用了


对于侧注(向导对话框的帮助),可能会有所帮助(来自David Kyle) 和他的博客“):

我们在向导页面中设置上下文id

我们为向导对话框设置帮助

我们不重写
performHelp()

至于帮助上下文id,请在插件中定义上下文xml文件


我的向导帮助。
在你的插件中


一个常见的问题是混淆了插件和上下文帮助ID。你可以设置 两个断点以查看请求的上下文id

以下是您的操作方法: 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>

对于第一部分,我无意中在其中输入了一个伪字符串,但我仍然不确定如何将其应用于其他部分。对于第二部分,关键是在向导页面中添加引用。谢谢注意:您想使用Bundle SymbolicName而不是Bundle Name。@Jason:谢谢您的反馈。我已经根据自我提示更新了我的答案:1)使用包含句点的上下文ID是灾难的秘诀。my.plugin.help.general不起作用。引用“帮助\常规”时,必须使用my.plugin.help\常规。2) 不能在help_contexsts.xml文件中指定插件名称。使用“帮助\概述”。@Jason:如果你已经设法回答了(部分)你的问题,你可以发布一个实际的答案(甚至选择你自己的帖子作为正式答案-本案例不涉及代表利益)@VonC回答了它,并在这里更直接地创建了我的原始问题优秀的反馈(+1)。谢谢:)
  public void createPartControl(Composite parent) {
      ...
      PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, 
         "my.plugin.help.general");
   }
PlatformUI.getWorkbench().getHelpSystem().setHelp()
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");
<?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>
<?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>
 <extension
         point="org.eclipse.help.contexts">
         <contexts file="help_contexts.xml">
         </contexts>
   </extension>
public class MyWizardPage extends WizardPage
    public void createControl(Composite parent) {
        PlatformUI.getWorkbench.getHelpSystem.setHelp(parent, "my.plugin.help_general");
    }
}