org.eclipse.ui.actionSets

Ein Plug-in kann die Menüs und die Symbolleiste der Workbench über den Erweiterungspunkt org.eclipse.ui.actionSets durch Menüs, Menüoptionen und Symbolleistenelemente ergänzen. Damit die Anzeige nicht durch die gleichzeitige Darstellung aller Menüergänzungen von allen Plug-ins zu unübersichtlich wird, werden die Ergänzungen in Aktionssets gruppiert, deren Anzeige über die Benutzervorgaben gesteuert werden kann.

Nach Auswahl der Optionen Fenster->Perspektive anpassen... im Workbench-Menü können Sie sehen, durch welche Aktionssets die Workbench ergänzt wurde. Mit dieser Option können Sie einen Dialog aufrufen, in dem die Direktaufrufe und Aktionssets aufgelistet sind, die in der aktuellen Perspektive verfügbar sind.  Die Aktionssets sind unter Andere aufgeführt.  Ein Haken neben einem Aktionsset gibt an, dass die Menü- und Symbolleistenaktionen in der Workbench angezeigt werden. Wenn Sie den Namen eines Aktionssets auswählen, wird rechts die Liste der verfügbaren Aktionen angezeigt. Die folgende Abbildung zeigt die Liste der in der Workbench verfügbaren Aktionssets. (Abhängig von den installierten Plug-ins und der aktiven Perspektive kann die Darstellung in Ihrer Workbench hiervon abweichen.)

Dialog 'Perspektive anpassen' mit Aktionssetliste

Das Tool für Readme-Dateien verwendet ein Aktionsset, um das Workbench-Menü durch verschiedene Aktionen zum Öffnen des Browsers für Readme-Dateien zu ergänzen.  (Eine ähnliche Aktion wurde zum Kontextmenü des Ressourcennavigators hinzugefügt.)  Die Befehlsdatei lautet wie folgt:

<extension point = "org.eclipse.ui.actionSets">
	   <actionSet id="org_eclipse_ui_examples_readmetool_actionSet"
		   label="%ActionSet.name"
		   visible="true">
		   <menu id="org_eclipse_ui_examples_readmetool"
			   label="%ActionSet.menu"
			   path="window/additions"> 
			   <separator name="slot1"/>
			   <separator name="slot2"/>
			   <separator name="slot3"/>
		   </menu>
		   <action id="org_eclipse_ui_examples_readmetool_readmeAction"
			   menubarPath="window/org_eclipse_ui_examples_readmetool/slot1"
			   toolbarPath="readme"
			   label="%ReadmeAction.label"
			   tooltip="%ReadmeAction.tooltip"
			   helpContextId="org.eclipse.ui.examples.readmetool.open_browser_action_context"
			   icon="icons/ctool16/openbrwsr.gif"
			   class="org.eclipse.ui.examples.readmetool.WindowActionDelegate"
			   enablesFor="1">
			   <selection class="org.eclipse.core.resources.IFile"
					name="*.readme">
			   </selection>
		   </action>
		   ...
	   </actionSet>
 </extension>

Sie enthält eine Menge von Angaben. Diese werden jetzt Schritt für Schritt erläutert.  

Zunächst wird das Aktionsset deklariert und mit einer Bezeichnung (label) versehen.  Die Bezeichnung "Aktionen für Readme-Datei" (definiert für den Schlüssel %ActionSet.name in der Eigenschaftsdatei des Plug-ins) wird zum Anzeigen des Aktionssets im oben darstellten Dialog verwendet.  Da der Parameter visible auf 'true' gesetzt wurde, ist das Aktionsset in der entsprechenden Liste für die Anfangseinstellung der Workbench markiert, und die Aktionen werden angezeigt.

Die restliche Aktionssetdeklaration definiert das Menü, in dem die Aktionen angezeigt werden, sowie die Aktionen selbst.

Es wird ein Menü definiert, dessen Bezeichnung (label) in den Workbench-Menüs angezeigt wird.  Der Pfad des Menüs (Parameter path) weist die Workbench an, das neue Menü im Segment additions des Menüs Fenster zu platzieren.  (Informationen zu Menüpfaden und -segmenten finden Sie unter Pfade für Menüs und Symbolleisten.)  Im neuen Menü werden einige Segmente definiert, damit an spezifischen Stellen im Menü Aktionen eingefügt werden können.

Dieses Befehlsformat reicht aus, damit das Menü im Workbench-Menü Fenster angezeigt werden kann.

Workbench-Menü 'Fenster' mit Eintrag des Editors für Readme-Dateien

Als Nächstes werden die Aktionen selbst definiert.  

Die Aktionsdefinition (Parameter id, label, icon, class) ähnelt der anderer Aktionen, die Sie in Sichten, Editoren und Kontextmenüs bereits kennen gelernt haben.  An diese Stelle wird daher auf den bestehenden Unterschied, d. h. die Position, an der die Aktion angezeigt werden soll, eingegangen.  Mit den Parametern  menubarPath und toolbarPath wird die Position angegeben.  Zunächst wird der Parameter menubarPath so eingestellt, dass die Aktion zu einem Segment in dem Menü hinzugefügt wird, das soeben definiert wurde ( "window/org_eclipse_ui_examples_readmetool/slot1").

Menü des Editors für Readme-Dateien mit Menüpunkten

Anschließend wird ein neuer Pfad für die Symbolleiste (Parameter toolbarPath) definiert, um die Aktionen in die Symbolleiste der Workbench aufzunehmen.  Da es sich um einen neuen Pfad für die Symbolleiste handelt ("readme"), entscheidet die Workbench bezogen auf die Symbolleistenergänzungen anderer Plug-ins, welche Position verwendet wird.

Workbench-Symbolleiste mit Readme-Aktion

Wie reagiert das System, wenn die Aktion von einem Benutzer ausgewählt wird?  Die Aktion wird mit Hilfe der Klasse implementiert, die im Attribut class angegeben wurde.  Die Aktion class muss IWorkbenchWindowActionDelegate oder IWorkbenchWindowPulldownDelegate implementieren, wenn die Aktion als Pulldown-Menüpunkt in der Symbolleiste angezeigt werden soll.  Da im Beispiel jedoch kein solcher Menüpunkt erstellt wird, wird die Klasse WindowActionDelegate angegeben.  Diese Klasse ähnelt der Klasse ObjectActionDelegate.  Sie startet den Dialog mit den Abschnitten der Readme-Datei, wenn der Benutzer die Aktion auswählt.  (Dieser Abschnittsdialog wird unter Anwendungsdialoge näher erläutert.)

Die Aktion stellt auch Aktivierungsbedingungen für den Menüpunkt und das Symbolleistenelement bereit.  Die Menü- und Symbolleistenelemente werden nur dann aktiviert (enablesFor="1"), wenn eine einzelne Readme-Datei (selectionClass ="org.eclipse.core.resources.IFile" name="*.readme") ausgewählt wird.  Die Menü- und Symbolleistenelemente dieser Aktion werden angezeigt und gemäß dem Befehlsformat in der Datei plugin.xml aktiviert.  Der Plug-in-Code wird erst dann ausgeführt, wenn der Benutzer die Aktion auswählt und die Workbench die Aktion class ausführt.

Die beiden anderen Aktionen werden später im Zusammenhang mit umlenkbaren Aktionen erläutert.

Copyright IBM Corporation und Andere 2000, 2003.