Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Eclipse RCP: Kontextsensitive Buttons für Editor und Hilfebutton für Wizard hinzufügen
also trotz intensiver Suche seit heute morgen finde ich nicht heraus, wie mans macht... Ich habe einen selbstgebauten Editor und sobald der geöffnet ist und den Fokus hat, möchte ich sowohl im Toolbar als auch im Menu ein zugehöriges Command aktivieren, dass es erlaubt, den Inhalt als Bild zu speichern. Wie sage ich dem Eclipse, dass sobald ein VisualizationEditor den Fokus hat, das Command sichtbar und aktiv sein soll? Wie könnte ich das saveAs Command dafür einsetzen?
Du kannst die Sichtbarkeit von Toolbar Buttons über das visibleWhen Element Steuern.
Dort kannst du Property Tester mit logischen Bedingungen verknüpfen. Es gibt bereits jede Menge built-in Property Tester die du verwenden kannst: Command Core Expressions - Eclipsepedia
In deinem Fall ist wohl activeEditorId das richtige.
Also ich habe es jetzt irgendwie hinbekommen, aber das ganze verwirrt mich. Hier was ich herausgefunden habe:
1. Solange der Wizard die newWizard Extension benutzt und über diese aufgerufen wird, war es mir überhaupt nicht möglich, das Fragezeichen oder einen Help Button zu sehen, die Kontexthilfe konnte trotzdem mit F1 aufgerufen werden.
2. Ein Aufruf von "setHelpAvailable(true)" im Wizard selbst erzeugt einen Help Button, sofern der Wizard manuell, z.B. aus einem CommandHandler heraus, einem WizardDialog übergeben wird. Allerdings wird keine Hilfe angezeigt, wenn man den Button klickt. Im Gegenteil war es nach dem ersten Klick auch nicht mehr möglich, die Hilfe mit F1 aufzurufen.
3. Es gibt zwei Möglichkeiten, den WizardDialog dazu zu bringen, ein Fragezeichen anzuzeigen.
a) Die erste Möglichkeit ist die statische Methode WizardDialog.setHelpAvailable(true), die vermutlich dazu führen wird, dass in allen WizardDialogen das Fragezeichen angezeigt wird. Da ich momentan nur einen Wizard fertig habe, kann ich das nicht bestätigen.
b) Die zweite Möglichkeit ist, im Wizard die "setContainer" Methode wie folgt zu überschreiben:
4. Mit einem Hilfekontext wird dieses Fragezeichen allerdings nur verknüpft, wenn das Hilfesystem korrekt installiert ist, und auf der jeweiligen WizardPage dem Hilfesystem auch die richtige HelpContext Extensions mitgeteilt wird. Ich habe das auf meiner FileSelectionPage jetzt in der überschriebenen Methode "createControl()" so geregelt:
EDIT:
Die CONTEXT_ID ist eine Kombination aus PluginID und ContextID, in meinem Fall "de.jscivision.app.help.netcdfwizardhelp". Damit ihr auch seht, wie das in den zugehörigen XML Deklarationen aussieht:
In der plugin.xml des bundles de.jscivision.app.help
Inhalt des files der contexts.xml im root des bundles de.jscivision.app.help
HTML:
<?xml version="1.0" encoding="UTF-8"?>
<?NLS TYPE="org.eclipse.help.contexts"?>
<contexts>
<context id="netcdfwizardhelp">
<description>This is the sample context-sensitive help. There is a link to the help content below.</description>
<topic href="html/wizards/netcdf.html" label="Netcdf Wizard UI Explanation"/>
</context>
</contexts>
Wie man sehen kann, ist die CONTEXT_ID eine Kombination aus den Informationen beider Dateien.
Damit wird die Hilfe bei mir im Wizard angezeigt. Wenn man aber, wie in 2.) ausgeführt, einen Help Button erzeugt und diesen klickt, ist hernach die Kontextsensitive Hilfe per "?" auch gebrochen. Und wie erwähnt, als newWizardExtension läuft garnix davon.