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 Perspektive > Anpassen... im Workbench-Menü sehen Sie, durch welche Aktionssets die Workbench ergänzt wurde. Es wird ein Dialog aufgerufen, der eine Liste mit allen verfügbaren Aktionssets enthält. 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.)

Das Tool für Readme-Dateien ergänzt das Workbench-Menü mit einem Aktionsset durch die Aktion "Open Readme Browser". (Eine ähnliche Aktion wurde zum Kontextmenü der Sicht "Navigator" hinzugefügt.)   Die Befehlsdatei lautet wie folgt:

<extension 
    point = "org.eclipse.ui.actionSets">
    <actionSet id="org_eclipse_ui_examples_readmetool_actionSet"
        label="ReadMe Actions"
        visible="true">
        <menu id="org_eclipse_ui_examples_readmetool"
            label="Readme &amp;File Editor"
            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="&amp;Open Readme Browser@Ctrl+R"
            tooltip="Open Readme Browser"
            helpContextId="org.eclipse.ui.examples.readmetool.open_browser_action_context"
            icon="icons/basic/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 "ReadMe Actions" wird zum Anzeigen des Aktionssets im oben darstellten Dialog verwendet. Da der Parameter visible auf "true" gesetzt ist, ist das Aktionsset in der entsprechenden Liste für die Anfangseinstellung der Workbench markiert, und die Aktionen werden angezeigt.

Der Rest der Aktionssetdeklaration definiert das Menü, in dem die Aktion angezeigt wird, sowie die Aktion selbst.

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

Diese Anweisungen reichen aus, damit das Menü im Workbench-Menü Fenster angezeigt wird.

Als Nächstes wird die eigentliche Aktion 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 konzentrieren wir uns daher auf den Unterschied, nämlich die Position, an der die Aktion angezeigt werden soll. Mit den Parametern menubarPath und toolbarPath wird die Position angegeben. Zunächst wird die Aktion zu einem Segment im gerade definierten Menü hinzugefügt.

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

Bitte beachten Sie, dass für diese Aktion außerdem Aktivierungsbedingungen definiert werden. Die neue Option für Menü und Symbolleiste wird demzufolge nur dann aktiviert, wenn eine einzelne (enablesFor="1") Readme-Datei (selectionClass ="org.eclipse.core.resources.IFile" name="*.readme") ausgewählt ist.

Diese Optionen für Menü und Symbolleiste werden ausschließlich auf Grund der Befehle in der Datei plugin.xml angezeigt und aktiviert. Der Plug-in-Code wird erst dann ausgeführt, wenn der Benutzer die Aktion auswählt und die Workbench die Klasse der Aktion (Parameter class) ausführt.

Die Klasse der Aktion muss die Schnittstelle IWorkbenchWindowActionDelegate oder IWorkbenchWindowPulldownDelegate implementieren, wenn das Aktionsset als Pull-down-Menü in einer Symbolleiste angezeigt werden soll. Da im Beispiel jedoch kein solches Menü erstellt wird, wird die Klasse WindowActionDelegate angegeben. Diese Klasse ähnelt der Klasse ObjectActionDelegate. Sie startet den Dialog "Readme Sections", wenn der Benutzer die Aktion auswählt. Eine Darstellung dieses Dialogs finden Sie unter Anwendungsdialoge.