質問
これで、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)binディレクトリにこのファイルを含めるためにbuild.propertiesに行を追加しました(bin.includes = help_contexts.xml、...)
4)GEFベースのプラグインを実行すると、&quot; my.plugin.MainEditor&quot;&quot;に一致するものが見つかりません。動的なヘルプの下で。
どこかにこのようなものを作成する必要があることは知っていますが、WizardDialogまたは少なくともエディタ全体にこれを設定する場所がわかりません:
public void createPartControl(Composite parent) {
...
PlatformUI.getWorkbench().getHelpSystem().setHelp(parent,
"my.plugin.help.general");
}
注:この質問にはもともと2つの質問が含まれていました。他の場所に投稿される最初の(未回答の部分)を削除しました。
解決
次のようにします。 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の2番目のパラメーターについてはわかりません。 このスレッドを参照してください:
メソッド呼び出しで
PlatformUI.getWorkbench().getHelpSystem().setHelp()
2番目のパラメーターは
contextID
です。
&quot;pluginID.contextID
&quot;のように、pluginID
をプレフィックスとして付ける必要があります。
現在、プラグインのプラグインIDを見つける場所がわかりませんでした。
このプロパティの値を使用しました:Bundle-Name
Bundle-Symbolic-Name
fromMANIFEST.MF
asプラグインID。
動作するようになりました。
サイドノート( WizardDialog
のヘルプ)については、このスレッドが役立つかもしれません(David Kyleより)
および彼のブログ&quot; 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を確認するためのブレークポイントが2つあります。