Frage
Jetzt kann ich registrieren Kontexthilfe in einer Eclipse WizardDialog / Editor.
1) Ich habe eine help_contexts.xml Datei.
<?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) I verweisen diese Datei in meinem plugin.xml
<extension
point="org.eclipse.help.contexts">
<contexts file="help_contexts.xml" plugin="my.plugin.MainEditor">
</contexts>
</extension>
3) Ich habe eine Linie in meinem build.properties im bin-Verzeichnis diese Datei schließen (bin.includes = help_contexts.xml, ...)
4) Wenn meine GEF-basierte Plugin läuft, sehe ich „Kein Spiel für‚my.plugin.MainEditor‘“ unter dynamischer Hilfe.
Ich weiß, dass ich so etwas wie diese irgendwo erstellen müssen, aber ich weiß nicht, wo dies für meine WizardDialog einzurichten oder zumindest für meinen ganzen Editor:
public void createPartControl(Composite parent) {
...
PlatformUI.getWorkbench().getHelpSystem().setHelp(parent,
"my.plugin.help.general");
}
Hinweis: Diese Frage enthielt ursprünglich zwei Fragen. Ich habe den ersten (unbeantwortet Teil) entfernt an anderer Stelle veröffentlicht werden.
Lösung
Hier ist, wie Sie es tun: 1) Ich habe eine help_contexts.xml Datei. Ich habe keine, Perioden in der Kontext-ID. Schließen Sie nicht Ihren Namen Plugin drin.
<?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) verweisen ich diese Datei in meinem plugin.xml Sie den Plugin-ID nicht enthalten, wenn Sie Ihr eigenes Plugin verweisen.
<extension
point="org.eclipse.help.contexts">
<contexts file="help_contexts.xml">
</contexts>
</extension>
3) Ich habe eine Linie in meinem build.properties im bin-Verzeichnis diese Datei schließen (bin.includes = help_contexts.xml, ...). Beachten Sie Ihr Bundle-SymbolicName in Ihrem MANIFEST.MF (auch sichtbar in Ihrem plugin.xml Editor). Beispiel: my.plugin
4) Stellen Sie die Kontext-ID in der Wizard (Kredit geht an @VonC)
public class MyWizardPage extends WizardPage
public void createControl(Composite parent) {
PlatformUI.getWorkbench.getHelpSystem.setHelp(parent, "my.plugin.help_general");
}
}
Andere Tipps
Für die Hauptfrage, bin ich über Ihre setHelp zweiten Parameter nicht sicher. Siehe dieses Thema :
In dem Methodenaufruf
PlatformUI.getWorkbench().getHelpSystem().setHelp()
zweiter Parameter ist die
contextID
.
Es sollte mit dempluginID
wie vorangestellt werden. „pluginID.contextID
“
Nun war ich nicht sicher, wo die Plug-in finden ID für meine Plug-in.
So habe ich den Wert dieser Eigenschaft.Bundle-Name
Bundle-Symbolic-Name
vonMANIFEST.MF
als Plug-in-ID
Jetzt funktioniert es.
Für die Bemerkung am Rande (Hilfe für WizardDialog
), dieses Thema könnte (von David Kyle helfen
und sein Blog " Eclipse RCP "):
Wir setzen die Kontext-ID in unserem Assistenten Seite.
public class MyWizardPage extends WizardPage
public void createControl(Composite parent) {
PlatformUI.getWorkbench.getHelpSystem.setHelp(parent,
MyPluginActivator.ID + ".mycontexthelpid");
}
}
und wir setzen Hilfe für den Assistenten-Dialog.
WizardDialog dialog = new WizardDialog(.....);
PlatformUI.getWorkbench().getHelpSystem().setHelp(dialog.getShell(),
"mycontexthelp.id");
Wir überschreiben nicht
performHelp()
.Wie für die Hilfekontext-ID. Definieren Sie einen Kontext XML-Datei in Ihrem Plugin.
<?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>
in Ihrer Plugin
<plugin>
<extension point="org.eclipse.help.contexts">
<contexts file="mywizard.xml" plugin="com.mypluginid"/>
</extension>
</plugin>
Ein häufiges Problem ist in Unordnung, die Plug-in und Kontext-Hilfe-IDs auf. Sie können einstellen, ein paar Bruchstellen zu sehen, welche Kontext-ID angefordert wird.