RCP - dynamische actions in menu extention programmieren

Status
Nicht offen für weitere Antworten.

CJChico

Mitglied
Hi,

gibt es eine Möglichkeit dynamische Actions für ein Menü in der Menübar einer RCP-Anwendung zu erstellen?

Ich habe ein Extensionpoint als ActionSet definiert und da ein Menü hinzugefügt. Nun möchte ich über den code, also nicht über die plugin.xml action zu dem Menü hinzufügen. Wie ich mir den Extensionpoint und das menü hole weiß ich aber mir fehlt die Verbindung zwischen meinen Actions und dem Menü.
 
G

Gonzo17

Gast
Für den Fall, dass menuBar dein Menü ist und auch ein Objekt der Klasse MenuManager:

Java:
MenuManager testMenu= new MenuManager("&Test");
menuBar.add(testMenu);
testMenu.add(defaultAction);
testMenu.add(anotherAction);
 

CJChico

Mitglied
Nein das ist es leider nicht.

Wie gesagt das menu habe ich als ExtensionPoint definiert, so das es in der MenuBar der RCP-Anwendung verfügbar ist und das was ich suche ist, wie ich an das Menü dran komme oder wie ich meine Actions an das Menu hinzufügen kann.

Vielleicht gibt es aber auch eine andere Lösung und man kann ein MenuManager direkt an die MenuBar hängen. Falls das irgentwie geht wäre mir das Weg auch recht.
 
G

Gonzo17

Gast
Wie ich mir den Extensionpoint und das menü hole weiß ich aber mir fehlt die Verbindung zwischen meinen Actions und dem Menü.

... und das was ich suche ist, wie ich an das Menü dran komme oder wie ich meine Actions an das Menu hinzufügen kann.

Hast du jetzt das Menü oder nicht? ???:L

Wenn nicht, dann kannst du es mal so versuchen:

Java:
MenuManager menuManager = ((ApplicationWindow) getWindowConfigurer()
				.getWindow()).getMenuBarManager();

Und generell kannst du dir diesen Thread mal durchlesen: http://www.java-forum.org/plattform...or-dem-start-deaktivieren-menueanordnung.html

Da hab ich nämlich was mit meinem Menü gemacht. Vielleicht hilft dir das.
 

CJChico

Mitglied
Danke ich musste zwar bisschen Tricksen um an dem WindowConfigurer zu kommen aber jetzt klappt es, danke.

Java:
MenuManager menuManager = ((ApplicationWindow)Plugin.getWindowConfigurer()
        .getWindow()).getMenuBarManager();
    for(IContributionItem item : menuManager.getItems()) {
      if(item instanceof ActionSetContributionItem &&
          ((ActionSetContributionItem)item).getId().equals("menuID") && 
          ((ActionSetContributionItem)item).getInnerItem() instanceof MenuManager) {
        MenuManager menu = (MenuManager)((ActionSetContributionItem)item).getInnerItem();
        ConfigurationPackageAction action = new ConfigurationPackageAction();
        action.setText("Test");
        menu.add(action);
        break;
      }
    }
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben