Aktionssets

Kennung: org.eclipse.ui.actionSets

Beschreibung: An diesem Erweiterungspunkt können Menüs, Menüoptionen und Symbolleistenschaltflächen zu den gemeinsamen Bereichen im Workbench-Fenster hinzugefügt werden. Diese Ergänzungen werden zusammengefasst als Aktionsset bezeichnet. Ihre Anzeige im Workbench-Fenster ist von den Benutzervorgaben abhängig.

Konfigurationsbefehle:

   <!ELEMENT actionSet (menu)* (action)* (description?)>
   <!ATTLIST actionSet
      id        CDATA #REQUIRED
      label     CDATA #REQUIRED
      visible   (true | false) #IMPLIED
    >
    <!ELEMENT description (#PCDATA)>

   <!ELEMENT menu (separator)+ (groupMarker)*>
   <!ATTLIST menu
      id         CDATA #REQUIRED
      label      CDATA #REQUIRED
      path       CDATA #IMPLIED
   >    <!ELEMENT separator EMPTY>
   <!ATTLIST separator
      name       CDATA #REQUIRED
   >
  • name: Ein Name des Trennzeichens, auf das später im Aktionspfad als letztes Token verwiesen werden kann. Trennzeichen dienen daher als benannte Gruppen, in denen Aktionen und Untermenüs hinzugefügt werden können.
  •    <!ELEMENT groupMarker EMPTY>
       <!ATTLIST groupMarker
          name       CDATA #REQUIRED
       >
  • name: Ein Name für die Gruppenmarkierung, auf den später im Aktionspfad als letztes Token verwiesen werden kann.
  •    <!ELEMENT action (selection)* (enablement)?>
       <!ATTLIST action
          id                NMTOKEN #REQUIRED
          label             CDATA #REQUIRED
          accelerator       CDATA #IMPLIED
          definitionId      CDATA #IMPLIED
          menubarPath       CDATA #IMPLIED
          toolbarPath       CDATA #IMPLIED
          icon              CDATA #IMPLIED
          disabledIcon      CDATA #OPTIONAL
          hoverIcon         CDATA #OPTIONAL
          tooltip           CDATA #IMPLIED
          helpContextId     CDATA #IMPLIED
          state             (true | false) #IMPLIED
          pulldown          (true | false) #IMPLIED
          class             CDATA #OPTIONAL
          retarget          (true | false) #OPTIONAL
         allowLabelUpdate  (true | false) #OPTIONAL
          enablesFor        CDATA #IMPLIED
       >    <!ELEMENT selection EMPTY>
       <!ATTLIST selection
          class             CDATA #REQUIRED
          name              CDATA #IMPLIED
       >    <!ELEMENT enablement (and | or | not | objectClass | objectState | systemProperty | pluginState)*>
       <!ATTLIST enablement EMPTY>
    In Version 2.0 von Eclipse kann das Element enablement verwendet werden, um die Aktivierung für die Aktion zu definieren. Weitere Informationen zur Verwendung des Elements enablement finden Sie unter actionExpressions.html.
    Beispiele:

    Das folgende Beispiel stellt ein Aktionsset dar (bitte achten Sie insbesondere auf die Verwendung der Unterelemente und Attribute):

        <extension point = "org.eclipse.ui.actionSets">
            <actionSet id="com.xyz.actionSet"
                label="Meine Aktionen"
                visible="true">
                <menu id="com.xyz.xyzMenu"
                    label="XYZ-Menü"
                    path="additions">
                    <separator name="group1"/>
                </menu>
                <action id="com.xyz.runXYZ"
                    label="&amp;XYZ-Tool ausführen"
                    menubarPath="com.xyz.xyzMenu/group1"
                    toolbarPath="Normal/XYZ"
                    icon="icons/runXYZ.gif"
                    tooltip="XYZ-Tool ausführen"
                    helpContextId="com.xyz.run_action_context"
                    class="com.xyz.actions.RunXYZ"
                    enablesFor="1">
                    <selection class="org.eclipse.core.resources.IFile" name="*.java"/>
                </action>
                <action id="com.xyz.runABC"
                    label="&amp;ABC-Tool ausführen"
                    menubarPath="com.xyz.xyzMenu/group1"
                    toolbarPath="Normal/XYZ"
                    icon="icons/runABC.gif"
                    tooltip="ABC-Tool ausführen"
                    helpContextId="com.xyz.run_abc_action_context"
                    retarget="true"
                    allowLabelUpdate="true">
                </action>
            </actionSet>
        </extension>

    Im oben dargestellten Beispiel ist die angegebene Aktion namens "Meine Aktionen" in der Anfangseinstellung jeder Perspektive sichtbar. Sie wird nur bei Auswahl eines einzelnen Elements aktiviert (Attribut enablesFor). Außerdem müssen Objekte in der Auswahl die angegebene Schnittstelle (IFile) implementieren und eine Java-Datei sein.

    API-Informationen: Der Wert des Attributs class muss der vollständig qualifizierte Name einer Klasse sein, die org.eclipse.ui.IWorkbenchWindowActionDelegate oder org.eclipse.ui.IWorkbenchWindowPulldownDelegate implementiert. Letztes sollte in Fällen implementiert sein, in denen das Attribut pulldown auf den Wert "true" gesetzt ist. Diese Klasse wird so spät wie möglich geladen, um ein Laden des Plug-ins zu verhindern, bevor es wirklich benötigt wird.

    Die in der Anfangseinstellung geltenden Aktivierungskriterien für eine Aktionserweiterung werden durch enablesFor, selection und enablement definiert. Sobald der Aktionsstellvertreter jedoch als Exemplar erstellt wurde, kann er den Aktivierungsstatus einer Aktion direkt mit seiner Methode selectionChanged steuern.

    Es ist unbedingt zu beachten, dass die Workbench Menüs nicht im Auftrag von Plug-ins erstellt. Menüpfade müssen daher auf Menüs verweisen, die bereits vorhanden sind.

    Aktions- und Menübezeichnungen können Sonderzeichen enthalten, die mnemonische Zeichen und Direktaufrufzeichen gemäß den folgenden Regeln codieren:

    1. Mnemonische Zeichen werden angegeben, indem ein Et-Zeichen (&) vor ein ausgewähltes Zeichen des umsetzbaren Textes gesetzt wird. Da das Et-Zeichen in XML-Zeichenfolgen nicht zulässig ist, muss die Zeichenentität &amp; verwendet werden.
    2. Optionale Direktaufrufzeichen werden am Ende der Namenszeichenfolge mit dem Zeichen @ angegeben, auf das eine Reihe von Änderungswerte und das eigentliche Direktaufrufzeichen folgen (Beispiel: &amp;Speichern@Strg+S). Änderungswerte können mit dem Zeichen + als Begrenzer verkettet werden (Beispiel. @Strg+Umschalt+S).
    Wenn zwei oder mehr Aktionen einem Menü oder einer Symbolleiste durch eine einzige Erweiterung hinzugefügt werden sollen, werden die Aktion in umgekehrter Reihenfolge (als in der Datei plugin.xml aufgelistet) angezeigt. Dieses Verhalten ist nicht sehr intuitiv, wurde jedoch erst nach dem Code-Freeze der Eclipse-Plattform-API festgestellt. Würde dieses Verhalten jetzt geändert, wäre jedes Plug-in, das auf dem vorhandenen Verhalten aufbaut, nicht funktionsfähig.

    Bereitgestellte Implementierung: Plug-ins können an diesem Erweiterungspunkt neue Menüs der höchsten Ebene (z. B. "Debug") bereitstellen. Plug-ins können außerdem benannte Gruppen definieren, in denen andere Plug-ins ihre Aktionen ergänzen können.

    Menüs der höchsten Ebene werden durch Verwendung der folgenden Werte im Attribut path erstellt:

    Wenn das Attribut path übergangen wird, wird das neue Menü in der Menüleistengruppe additions hinzugefügt.

    Die Standardgruppen in einem Workbench-Fenster sind in der Schnittstelle "IWorkbenchActionConstants" definiert. Diese Konstanten können im Code zur dynamischen Ergänzung eingesetzt werden. Die Werte können aber auch in eine XML-Datei kopiert und weiter auf die vorhandenen Workbench-Menüs und -Symbolleisten abgestimmt werden.

    Verschiedene Menü- und Symbolleistenoptionen im Workbench-Fenster werden über Algorithmen definiert.  In solchen Fällen muss ein separater Mechanismus verwendet werden, um das Fenster zu erweitern.  Das Hinzufügen einer neuen Workbench-Sicht führt beispielsweise dazu, dass das Menü "Fenster" eine neue Option enthält. Erweiterungen für Import- und Exportassistenten sowie für Assistenten für neue Ressourcen werden ebenfalls automatisch zum Fenster hinzugefügt.
     

    Copyright IBM Corporation und Andere 2000, 2002.