Pulldown Button

rcp_user

Grünschnabel
Hilfe !!

Liebe RCP Experten,
ich brauche unbedingt eure Hilfe. Ich versuche einen Pulldown Button in der Coolbar zu erzeugen und das zugehörige Menü je nach aktuell ausgewähltem Editor anders zu füllen. Ich komme dabei auf keinen grünen Zweig:

Wo genau kann ich denn dynamisch ein Menü erzeugen und dieses dem Pulldown Button hinzufügen? Wie ist denn die generelle Vorgehensweise - ich verwende Actions?

Ich bin für jeden Ratschlag dankbar....
 
Zuletzt bearbeitet:
Nun, da gibt es mehrere Möglichkeiten... eine schnelle und einfache wäre, das ganze über das plugin.xml und mit commands zu lösen...

das würde dann so aussehen:

als erstes fügst du der haupttool- resp. coolbar (extensionpoint: toolbar:eek:rg.eclipse.ui.main.toolbar?after=additions), dein pulldown hinzu:

Code:
<menuContribution
            locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions">
         <toolbar id="ch.blabla">
            <command
                  commandId="Test.dummyCommand"
                  icon="icons/irgendnbild.gif"
                  id="test.pulldown"
                  label="Test"
                  style="pulldown">
            </command>
         </toolbar>
      </menuContribution>

dann kannst du an die id des oben definierten punktes eine eigene menucontribution anhängen:

Code:
<menuContribution
            locationURI="menu:test.pulldown">
         <command
               commandId="Test.dummyCommand"
               icon="icons/deinBild.gif"
               label="Here I am"
               style="push">
         </command>
      </menuContribution>

und nun die Sichtbarkeit abhängig vom editor resp der view. Das könnte man nun mit einem viisibleWhen lösen. Beispiel: zeige mir den Menüpunkt "Here I am" nur, wenn der aktive Part MeineTestView ist:


Code:
<menuContribution
            locationURI="menu:test.pulldown">
         <command
               commandId="Test.dummyCommand"
               icon="icons/deinBild.gif"
               label="Here I am"
               style="push">
            <visibleWhen
                  checkEnabled="false">
               <with
                     variable="activePartId">
                  <equals
                        value="MeineTestViewID">
                  </equals>
               </with>
            </visibleWhen>
         </command>
      </menuContribution>

so fügst du für jeden Editor resp. View seine/ihre commands hinzu...
Falls es nicht gerade zehn Views und für jede 20 Commands sind, würd ich das so lösen...

Gruss
.bile
 

Neue Beiträge

Zurück