Eclipse RCP: Kontextsensitive Buttons für Editor und Hilfebutton für Wizard hinzufügen

Bergtroll

Bekanntes Mitglied
Hellohello,

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?

Außerdem weigert sich mein Wizard, einen Hilfebutton anzuzeigen. Mein letzter Versuch war:
www.macrobug.com Blog Archive Displaying help in Wizards in Eclipse

Vielen Dank
Bergtroll
 

Wildcard

Top Contributor
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.
 

Bergtroll

Bekanntes Mitglied
Also dieser verfluchte Hilfebutton taucht einfach nicht auf :(:(:(, hier ist, was ich gemacht habe:

Nach :rtfm: habe ich Folgendes konstruiert

Mein Netcdf Constructor ist

Java:
public NetcdfWizard() {
    this.setHelpAvailable(true);
    System.out.println("isHelpAvailable: "+ this.isHelpAvailable());
}
--> Console output sagt: "isHelpAvailable: true" sobald der wizard gestartet ist.

Meine einzige WizardPage enthält die Methode

Java:
@Override
public void performHelp() {
    PlatformUI.getWorkbench().getHelpSystem().displayHelp("de.jscivision.netcdf.wizardhelp");
}

Meine plugin.xml für das Bundle vom Wizard ist
Code:
<plugin>
   <extension
         point="org.eclipse.ui.newWizards">
      <wizard
            category="de.jscivision.app.visualizationWizards"
            class="de.jscivision.netcdf.wizards.NetcdfWizard"
            icon="icons/netcdf_logo.png"
            id="de.jscivision.netcdf.visualizationWizard"
            name="Netcdf Wizard">
      </wizard>
   </extension>
   <extension
         id="de.jscivision.netcdf.wizardhelp"
         point="org.eclipse.help.contexts">
      <contexts
            file="help/netcdfWizardHelpContent.xml">
      </contexts>
   </extension>
</plugin>

Mein "help/netcdfWizardHelpContent.xml" file ist

Code:
<?xml version="1.0" encoding="UTF-8"?>
<contexts>
      <context  id="wizardhelp">
        <description>Gets help about this wizard</description>
        <topic href="./wizard.html"  label="My wizard help"/>
        <topic href="./toc.html"  label="General help"/>
  </context>
</contexts>

Und die HTML files existieren auch, aber dieser verfluchte Button taucht einfach nicht auf ;( :shock: ???:L

Noch hoffnungsvoll,
Bergtroll
 

Bergtroll

Bekanntes Mitglied
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:
Java:
@Override
public void setContainer(IWizardContainer wizardContainer) {
	if (null != wizardContainer && wizardContainer instanceof WizardDialog) {
		WizardDialog dialog = (WizardDialog) wizardContainer;
		dialog.setHelpAvailable(true);
	}
	super.setContainer(wizardContainer);
}

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:
Java:
@Override
public void createControl(Composite parent) {
	PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, CONTEXT_ID);
	initGuiElements(parent);
	topComposite.layout();
	setControl(topComposite);
}

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
HTML:
<extension
        point="org.eclipse.help.contexts">
     <contexts
           file="contexts.xml"
            plugin="de.jscivision.app.help">
     </contexts>
</extension>

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.

Hoffe, das hilft euch auch mal weiter :)

Viele Grüße
Bergtroll
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
E OSGi Eclipse Plug-in programmierung: java.lang.NullPointerException: Cannot enter synchronized block because "profile" is null Plattformprogrammierung 4
R Eclipse Bundles Plattformprogrammierung 2
Robertop RCP Command in bereits bestehendes Eclipse-Menü einbauen Plattformprogrammierung 4
T Java Projekt läuft nur in Eclipse Plattformprogrammierung 6
M Eclipse Plugin PreferencePage BooleanFieldEditor Plattformprogrammierung 1
F OSGi Plugin unter Eclipse arbeitet anders als wenn veröffentlicht Plattformprogrammierung 2
D RCP P2-Repository für Eclipse-Plugins Plattformprogrammierung 0
M Debuging in Eclipse Annotations Processor Plattformprogrammierung 0
D Nach Sprachpaket Installation kann eclipse nicht mehr gestartet werden Plattformprogrammierung 4
L0MiN Wie kann ich ein Klassendiagramm aus Eclipse heraus erstellen? Plattformprogrammierung 5
M Eclipse Probleme beim Ausführen eines Programms Plattformprogrammierung 3
feinperligekohlensaeure Eclipse Workspace gemeinsam Nutzen -> keine .project Datei Plattformprogrammierung 1
F Eclipse Build Path auf benötigte Projekte Plattformprogrammierung 4
B Daten von Eclipse extern sichern Plattformprogrammierung 2
B Eclipse zeigt Fehler nach Java-Update auf 1.8.0_40 Plattformprogrammierung 3
VfL_Freak [Eclipse] Fehleranzeige im Reiter "Problems" Plattformprogrammierung 1
S Errors in workspace bei eclipse Plattformprogrammierung 3
T eclipse bietet keine META-INF an Plattformprogrammierung 1
N Eclipse wo starten Plattformprogrammierung 6
A Eclipse schließt einfach ohne Fehlermeldung Plattformprogrammierung 4
W Eclipse vergißt beim Exportieren Resources-Ordner Plattformprogrammierung 11
A RCP Eclipse e4 und Injection-Contexts Plattformprogrammierung 0
K Eclipse fährt nicht mehr hoch. Metadatendatei schuld? Plattformprogrammierung 7
C [Eclipse RCP E4]InjectionException: no actual value was found for the argument "MDirtyable" Plattformprogrammierung 8
T Eclipse Eigenschaften hinzufügen Plattformprogrammierung 2
M RCP [Eclipse RCP 3.4] ViewTab Kontextmenu "Alle schließen" Plattformprogrammierung 0
D Problem mit eclipse Plattformprogrammierung 2
S Verschieben des Verzeichnis .eclipse aus Userprofile Plattformprogrammierung 3
A RCP Kann kein Eclipse 4 Projekt anlegen Plattformprogrammierung 0
S RCP Exportiertes RCP Produkt lädt Datei nicht, bei Start aus Eclipse wird Datei jedoch gefunden Plattformprogrammierung 6
G Eine Library in Eclipse zur Verfügung stellen Plattformprogrammierung 14
Gregorrr Eclipse RCP Product Build-Nummer + Jenkins Plattformprogrammierung 6
R Einfaches Eclipse-Plugin-Beispiel funktioniert nicht Plattformprogrammierung 5
H OSGi OSGi + Logback + slf4j - Eclipse Run Configuration Plattformprogrammierung 7
C plugin development environment eclipse Plattformprogrammierung 4
R RCP Commands nutzen / org.eclipse.ui.file.save Plattformprogrammierung 7
O Installiere externe Methode "containsNone" in Eclipse Plattformprogrammierung 2
M Keybinding in Eclipse Plugin Plattformprogrammierung 3
TheWhiteShadow RCP Konstrukt für Editor in Eclipse gesucht. Plattformprogrammierung 3
B Eclipse Probleme mit build Plattformprogrammierung 8
H Keine Hilfe/API mehr in Eclipse Juno? Plattformprogrammierung 4
B Neue SuppressWarning in Eclipse Juno Plattformprogrammierung 6
B Eclipse Property Page Plattformprogrammierung 6
B Eclipse PreferencePage Plattformprogrammierung 3
B Eclipse Plugin Einstellungsleiste Plattformprogrammierung 2
B Birt-Previewer über Eclipse Plattformprogrammierung 14
J Eclipse Plug-In für UML-Diagramme Problem Plattformprogrammierung 4
O Eclipse Plugin - Einfachstes Problem, das es gibt. Plattformprogrammierung 2
R Eclipse RCP Tabellen-View (Anfängerfrage) Plattformprogrammierung 3
C Eclipse: Notification beim umbennen von Methoden? Plattformprogrammierung 4
schalentier Eclipse Sourcecode Plattformprogrammierung 4
A Eclipse undo/redo button reagiert nicht auf Änderungen in der OperationHistory Plattformprogrammierung 5
P Eclipse M2_REPO (NON MODIFIABLE) Plattformprogrammierung 8
B Eclipse: Contextmenu id erhalten? Plattformprogrammierung 9
H Datei in eclipse wird nicht erkannt Plattformprogrammierung 3
O Neues Tastenkürzel für Eclipse Editorfenster registrieren Plattformprogrammierung 2
3 Eclipse Editor Plugin selektiert Projekt nicht Plattformprogrammierung 10
Madlip RCP eclipse.ui.bindings (Key-Problematik) Plattformprogrammierung 2
S Eclipse vs. JavaMail vs. Ubuntu vs. Windows Plattformprogrammierung 3
M eclipse führt applikationen nicht mehr aus Plattformprogrammierung 6
S Eclipse: Auf CTRL-C/CTRL-V im Package Explorer? Plattformprogrammierung 4
M Eclipse und Hilfen Plattformprogrammierung 5
G Eclipse buggt rum!!! Plattformprogrammierung 4
B Eclipse RCP und Java 7 Plattformprogrammierung 7
G RCP Eclipse Editor + Guice Plattformprogrammierung 8
T RCP Eclipse RCP: Wo/wann im Plugin ist workbench initialisiert? Plattformprogrammierung 14
G Eclipse Plug-in: wie refreshe ich eine combobox? Plattformprogrammierung 4
M Eclipse Plug-in: Wie eine Grafik einfügen? Plattformprogrammierung 20
M RCP [Eclipse RCP] Feature Export und "Fehler"... Plattformprogrammierung 3
P Eclipse speichert keine Änderungen Plattformprogrammierung 5
M Eclipse - Dokumentation nicht über das Internet benutzen Plattformprogrammierung 3
C Eclipse Plugin NoClassDefFoundError Plattformprogrammierung 4
E org.eclipse.ui.dialogs.ListSelectionDialog erzeugt ClassNotFoundException zur Laufzeit Plattformprogrammierung 4
M Eclipse Plugin Entwicklung - NoClassDefFoundError Plattformprogrammierung 10
C RCP Verständnisfrage Eclipse/Equinox Plattformprogrammierung 4
D eclipse-RCP von der Konsole baut nicht Plattformprogrammierung 3
L RCP Eclipse Popupmenu im PackageExplorer erweitern? Plattformprogrammierung 7
C Eclipse Plugin Entwicklung: Editor für Flussdiagramme Plattformprogrammierung 6
S (OSGI - EQUINOX) Welche Eclipse IDE? Plattformprogrammierung 3
C Pdf in jar datei einbinden mit eclipse Plattformprogrammierung 23
G neuer branch in SVN mit Eclipse Plattformprogrammierung 6
F RCP eclipse rcp ohne eclipse? Plattformprogrammierung 15
dzim RCP Eclipse Provisioning Plattformprogrammierung 3
G RCP Abhängigkeiten von Eclipse Plugins Plattformprogrammierung 9
K Eclipse RCP, EMF, Hibernate Problem Plattformprogrammierung 7
B RCP eigenes Eclipse Plugin wird nicht aufgelöst Plattformprogrammierung 7
T Eclipse Helios XMLUnit importieren Plattformprogrammierung 6
R Verwendung pdfbox in Maven-Projekt in Eclipse Plattformprogrammierung 3
lumo RCP wechseln der Font von Eclipse per code Plattformprogrammierung 10
lumo RCP Eclipse internationalisierung Plattformprogrammierung 5
jemandzehage Kurze Fehlernachricht beim starten in Eclipse Plattformprogrammierung 5
A RCP java.lang.ClassNotFoundException: org.eclipse.core.runtime.adaptor.EclipseStarter Plattformprogrammierung 7
P Wie bekomme ich ICompilationUnit aus dem event? bei Eclipse-Plugin Plattformprogrammierung 3
Rudolf External Libs dauerhaft in Eclipse einbinden Plattformprogrammierung 3
G RCP Eclipse UI Forms Plattformprogrammierung 10
musiKk RCP Eclipse: Speichern von Spaltenbreiten Plattformprogrammierung 9
X Datei in einem Eclipse Projekt über Plugin zugreifen Plattformprogrammierung 2
P Eclipse Help: Wie Links zu anderer Hilfeseite setzen ? Plattformprogrammierung 5
F Eclipse EMF Modelltransformation Plattformprogrammierung 3
tfa RCP Compilereinstellungen festlegen bei Eclipse-Batch-Build Plattformprogrammierung 9

Ähnliche Java Themen

Neue Themen


Oben