T
tuxedo
Gast
Hallo zusammen,
hab hier eine Eclipse RCP Anwendung die aus mehreren Plugins besteht. Eines der Plugins soll ein Untermenü in der Menüleiste dynamisch erweitern können. Hab das mal experimentell aufgebaut, und das geht auch recht gut.
Das Problem das ich nun habe ist folgendes:
Der Inhalt des Untermenüs ist abhängig von der Selektion im Editor (der aus einem anderen Plugin stammt) bzw. der Selektion in einem View (welcher ebenfalls aus einem anderen Plugin stammt).
Meine Aktuelle Lösung würde so aussehen:
Ich regsitriere also global einen Selection-Listener. In dessen Implementierung muss ich dann nur noch auswerten was selektiert wurde und dann ggf. das Menü aktualisieren. Dieser Listener soll in dem Plugin laufen, von dem auch das Menü angepasst wird. Nur brauche ich dazu die workbench-Instanz.
Und ich hab aktuell keinen Schimmer, wie ich von einem Plugin aus so früh wie möglich an eine gültige workbench-Instanz komme. Über die Activator-Klasse des Plugins hab ich's schon mit der start() Methode probiert. Doch start() wird aufgerufen bevor es eine Workbench-Instanz gibt.
Hat jemand nen Tiopp für mich an welcher Stelle ich im Plugin den Listener registrieren kann, es also schon eine Workbench-Instanz gibt?
Gruß
Alex
hab hier eine Eclipse RCP Anwendung die aus mehreren Plugins besteht. Eines der Plugins soll ein Untermenü in der Menüleiste dynamisch erweitern können. Hab das mal experimentell aufgebaut, und das geht auch recht gut.
Das Problem das ich nun habe ist folgendes:
Der Inhalt des Untermenüs ist abhängig von der Selektion im Editor (der aus einem anderen Plugin stammt) bzw. der Selektion in einem View (welcher ebenfalls aus einem anderen Plugin stammt).
Meine Aktuelle Lösung würde so aussehen:
Java:
IWorkbench workbench = PlatformUI.getWorkbench();
IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
window.getSelectionService().addSelectionListener(new ISelectionListener() {
@Override
public void selectionChanged(IWorkbenchPart part, ISelection selection) {
System.out.println("part="+part+" selection="+selection);
}
});
System.err.println("SelectionListener registered!");
Ich regsitriere also global einen Selection-Listener. In dessen Implementierung muss ich dann nur noch auswerten was selektiert wurde und dann ggf. das Menü aktualisieren. Dieser Listener soll in dem Plugin laufen, von dem auch das Menü angepasst wird. Nur brauche ich dazu die workbench-Instanz.
Und ich hab aktuell keinen Schimmer, wie ich von einem Plugin aus so früh wie möglich an eine gültige workbench-Instanz komme. Über die Activator-Klasse des Plugins hab ich's schon mit der start() Methode probiert. Doch start() wird aufgerufen bevor es eine Workbench-Instanz gibt.
Hat jemand nen Tiopp für mich an welcher Stelle ich im Plugin den Listener registrieren kann, es also schon eine Workbench-Instanz gibt?
Gruß
Alex