Beschreibung: An diesem Erweiterungspunkt können Aktionen zu den Menü- und Symbolleisten von Sichten hinzugefügt werden, die durch andere Plug-ins definiert werden. Jede Sicht enthält ein lokales Pull-down-Menü, das normalerweise durch Klicken auf den rechten oberen Bereich aktiviert wird. Andere Plug-ins können dieses Menü durch Untermenüs und Aktionen ergänzen. Auch die Symbolleiste einer Sicht kann von Plug-ins durch Aktionen ergänzt werden. Zuerst erhält der Eigner der Sicht die Möglichkeit, diese Bereich zu belegen. Optionale Zusätze durch andere Plug-ins werden angehängt.
Konfigurationsbefehle:
<!ELEMENT viewContribution (menu | action)*>
<!ATTLIST viewContribution
id
CDATA #REQUIRED
targetID CDATA #REQUIRED
>
<!ELEMENT menu (separator)+>id - Eine eindeutige Kennung, mit der auf diese Ergänzung verwiesen werden kann. targetID - Die eindeutige Kennung der Sicht (wie in der Registrierung angegeben), die ergänzt werden soll.
<!ELEMENT action (selection)* (enablement)?>name: Der Name des Trennzeichens, auf das später im Aktionspfad als letztes Token verwiesen werden kann. Trennzeichen dienen daher als benannte Gruppen, in denen Aktionen hinzugefügt werden können.
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.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.
Aktions- und Menübezeichnungen können Sonderzeichen enthalten, die mnemonische Zeichen codieren, die über ein Et-Zeichen (&) vor einem mnemonischen Zeichen des umsetzbaren Textes angegeben werden. Da das Et-Zeichen in XML-Zeichenfolgen nicht zulässig ist, muss die Zeichenentität & verwendet werden.
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.
Beispiele:
Das folgende Beispiel ist ein Erweiterungspunkt für Sichtaktionen (bitte achten Sie insbesondere darauf, wie Unterelemente und Attribute verwendet werden):
<extension point="org.eclipse.ui.viewActions">
<viewContribution
id="com.xyz.xyzViewC1"
targetID="org.eclipse.ui.views.ResourceNavigator">
<menu id="com.xyz.xyzMenu"
label="XYZ-Menü"
path="additions">
<separator name="group1"/>
</menu>
<action id="com.xyz.runXYZ"
label="&Run XYZ Tool"
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>
</viewContribution>
</extension>
Im oben dargestellten Beispiel wird die angegebene Aktion nur bei einer Einzelauswahl aktiviert (Attribut enablesFor). Außerdem muss jedes Objekt in dieser Auswahl die angegebene Schnittstelle (IFile) implementieren und eine Java-Datei sein. Es können mehrere Elemente selection angegeben werden. Dann muss eine der Angaben vorliegen.
API-Informationen: Der Wert des Attributs class muss der vollständig qualifizierte Name einer Java-Klasse sein, die org.eclipse.ui.IViewActionDelegate implementiert. Diese Schnittstelle wird so spät wie möglich geladen, um ein Laden des Plug-ins zu verhindern, bevor es wirklich benötigt wird. Sie erweitert org.eclipse.ui.IActionDelegate und fügt eine zusätzliche Methode hinzu, mit deren Hilfe der Stellvertreter mit dem Exemplar der Sicht initialisiert werden kann, für die Ergänzungen bereitgestellt werden.
Bereitgestellte Implementierung: Jede Sicht enthält bei Auslieferung eine Reihe von Standardoptionen im Pull-down-Menü und der lokalen Symbolleiste. Zusätze aus anderen Plug-ins werden an die Standardelemente angehängt. Es ist hilfreich, die Aktionskennungen für eine Sicht in einer öffentlichen Schnittstelle zu publizieren. Die Aktionen und Hauptgruppen für das Workbench-Fenster sind beispielweise in der Schnittstelle "org.eclipse.ui.IWorkbenchActionConstants" definiert.