2 Stimmen

Eine "editorAction" über den org.eclipse.ui.menus-Erweiterungspunkt beisteuern

In vielen Dokumenten wie aquí es wird beschrieben, dass alte Erweiterungspunkte org.eclipse.ui.actionSets , org.eclipse.ui.viewActions , org.eclipse.ui.editorActions et org.eclipse.ui.popupMenus von Eclipse 3.2 wurden durch das neue org.eclipse.ui.menus Erweiterungspunkt in Eclipse 3.3.

Daher meine einfache Frage: Wie verwende ich den neuen Erweiterungspunkt org.eclipse.ui.menus um zu einer editorAction-Symbolleiste beizutragen ( org.eclipse.ui.editorActions ) ?

Ich habe Dinge wie die folgenden in vielen verschiedenen locationURI Werte, aber es hat nie funktioniert.

   <extension point="org.eclipse.ui.menus">
      <menuContribution locationURI="toolbar:my.editor.id">
         <command
               commandId="my.command.id"
               icon="icons/somicon.gif"
               label="Do my command"
               style="push">
         </command>
      </menuContribution>
   </extension>

Mein Befehl wird nie angezeigt und ich erhalte keine Rückmeldung in der Konsole. Was ist also die richtige Eigenschaft für locationURI um mein Kommando dort zu bekommen?

Der Befehl funktioniert auch auf anderen Symbolleisten, er funktioniert auch über den alten Erweiterungspunkt (mit Änderungen der Befehlsklasse).

Warum brauche ich die neue Durchwahl? Weil sie nicht nur Befehle unterstützt, sondern auch Steuerelemente, zu denen man mehr als nur eine einfache Schaltfläche beitragen kann.

Letzte Aktualisierung

Die folgende Lösung soll die Funktionalität des Erweiterungspunkts editorActions ersetzen. Aufgrund des in der Antwort auf den letzten Kommentar erwähnten Fehlers ist dieser Ersatz nicht wirklich sinnvoll. Trotzdem akzeptiert...

3voto

katsharp Punkte 2551

Es ist mir gelungen, mit dieser locationURI einen Beitrag zur Hauptsymbolleiste in Eclipse zu leisten:

locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions"

So kann ich z. B. meinen Befehl nur dann in die Symbolleiste einfügen, wenn mein Editor aktiv ist:

<extension
     point="org.eclipse.ui.menus">
  <menuContribution
      locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions">
     <toolbar
           id="mytoolbar.id"
           label="my toolbar">
        <command
              commandId="command.id"
              icon="icons/sample.gif"
              id="mytoolbar.command.id"
              label="Do my command"
              style="push">
           <visibleWhen
                 checkEnabled="false">
                     <with
                         variable="activePartId">
                          <equals
                             value="my.editor.id">
                          </equals>
                     </with>
          </visibleWhen>
        </command>
     </toolbar>
  </menuContribution>
</extension>

Dabei ist command.id die ID meines Befehls.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X