Befehle

org.eclipse.ui.commands

2.1

Am Erweiterungspunkt org.eclipse.ui.commands werden unter Verwendung der Elemente command und category Befehle und Befehlskategorien deklariert. Ein Befehl ist eine Kurzdarstellung eines semantischen Verhaltens, jedoch nicht seine eigentliche Implementierung. Dadurch können verschiedene Entwickler ein spezifisches Verhalten für ihre individuellen Abschnitte beisteuern. Es kann zum Beispiel einen Befehl "Einfügen" mit einer Implementierung in einem Editor und einer anderen Implementierung in einem Explorer-Fensterobjekt geben. Diese Implementierungen werden Handler genannt. Befehle können auch als deklarative Funktionszeiger oder Signalroutinen betrachtet werden.

<!ELEMENT extension (category* , command* , commandParameterType* , keyBinding* , keyConfiguration* , context* , scope* , activeKeyConfiguration?)>

<!ATTLIST extension

id    CDATA #IMPLIED

name  CDATA #IMPLIED

point CDATA #REQUIRED>


<!ELEMENT command (defaultHandler? , state* , commandParameter*)>

<!ATTLIST command

category       CDATA #IMPLIED

description    CDATA #IMPLIED

id             CDATA #REQUIRED

name           CDATA #REQUIRED

categoryId     CDATA #IMPLIED

defaultHandler CDATA #IMPLIED

returnTypeId   CDATA #IMPLIED

helpContextId  CDATA #IMPLIED>

Mit diesem Element werden Befehle definiert. Ein Befehl stellt eine Anforderung vom Benutzer dar, die durch eine Aktion verarbeitet werden kann, und sollte im Vergleich zu anderen Befehlen semantisch eindeutig sein. Definieren Sie keinen Befehl, wenn es bereits einen Befehl gibt, der mit derselben Bedeutung definiert wurde. Wenn mehrere solcher Elemente mit demselben Attribut id vorhanden sind, wird nur das als letztes deklarierte Element (in der Reihenfolge, in der die Plug-in-Registrierung gelesen wird) als gültig betrachtet. Informationen dazu, wie Aktionen an Befehle gebunden werden, finden Sie in den Angaben zu den Erweiterungspunkten org.eclipse.ui.actionSets und org.eclipse.ui.editorActions.



<!ELEMENT category EMPTY>

<!ATTLIST category

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED>

In der Benutzerschnittstelle werden Befehle häufig in Kategorien angeordnet, um ihre Verwaltung zu vereinfachen. Dieses Element dient zum Definieren solcher Kategorien. Befehle können sich selbst zu höchstens einer Kategorie zuordnen. Wenn mehrere solcher Elemente mit demselben Attribut id vorhanden sind, wird nur das als letztes deklarierte Element (in der Reihenfolge, in der die Plug-in-Registrierung gelesen wird) als gültig betrachtet.



<!ELEMENT commandParameter (values?)>

<!ATTLIST commandParameter

id       CDATA #REQUIRED

name     CDATA #REQUIRED

values   CDATA #IMPLIED

typeId   CDATA #IMPLIED

optional (true | false) "true">

Definiert einen Parameter, den ein Befehl verstehen sollte. Ein Parameter ist eine Methode, einem Handler während der Ausführung weitere Informationen zur Verfügung zu stellen. Zum Beispiel könnte ein Befehl "Sicht anzeigen" eine Sicht als Parameter verwenden. Handler sollten in der Lage sein, diese Parameter zu verstehen, sie sollten also wie APIs behandelt werden.

Ab: 3.1



<!ELEMENT commandParameterType EMPTY>

<!ATTLIST commandParameterType

id        CDATA #REQUIRED

type      CDATA #IMPLIED

converter CDATA #IMPLIED>

Definiert den Objekttyp eines Elements "commandParameter" und kann eine Unterklasse von org.eclipse.core.commands.AbstractParameterValueConverter angeben, um eine Konvertierung von Werten für Zeichenfolgeparameter in Objekte vorzunehmen.

Ab: 3.2



<!ELEMENT values (parameter*)>

<!ATTLIST values

class CDATA #REQUIRED>

Die ausführlichere Version des Attributs values für commandParameter.

Ab: 3.1



<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Ein möglicher Wert für einen Parameter.

Ab: 3.1



<!ELEMENT defaultHandler (parameter)>

<!ATTLIST defaultHandler

class CDATA #REQUIRED>

Der standardmäßige Handler für diesen Befehl. Wenn kein anderer Handler aktiv ist, wird dieser Handler aktiviert. Dieser Handler verursacht Konflikte mit anderen Handlern, die keine Bedingungen activeWhen angeben. Wenn Sie keine IExecutableExtension erstellen, können Sie stattdessen das Attribut defaultHandler verwenden.

Ab: 3.1



<!ELEMENT state (class?)>

<!ATTLIST state

class CDATA #IMPLIED

id    CDATA #REQUIRED>

Statusinformationen, die von allen Handlern gemeinsam benutzt werden und möglicherweise auch sitzungsübergreifend bestehen bleiben. Beispiele hierfür sind der Status eines Markierungsfeldes oder die Bezeichnung eines Handlers. Der Status ist einfach eine Klasse, die für den Status geladen wird. Weitere Details finden Sie in den API-Informationen.

Ab: 3.2



<!ELEMENT class (parameter*)>

<!ATTLIST class

class CDATA #REQUIRED>

Die Klasse, die geladen werden kann, um den Status dieses Befehls zu speichern. Dieses Element wird verwendet, wenn Sie mehrere Parameter an org.eclipse.core.runtime.IExecutableExtension übergeben wollen.

Ab: 3.2



Das Element keyConfiguration wird nicht mehr unterstützt.

<!ELEMENT keyConfiguration EMPTY>

<!ATTLIST keyConfiguration

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED

parent      CDATA #IMPLIED

parentId    CDATA #IMPLIED>

Mit diesem Element werden Tastenkonfigurationen definiert. Wenn mehrere solcher Elemente mit demselben Attribut id vorhanden sind, wird nur das als letztes deklarierte Element (in der Reihenfolge, in der die Plug-in-Registrierung gelesen wird) als gültig betrachtet. Bitte verwenden Sie statt dessen den Erweiterungspunkt "org.eclipse.ui.bindings".



Das Element context wird nicht mehr unterstützt.

<!ELEMENT context EMPTY>

<!ATTLIST context

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED

parent      CDATA #IMPLIED

parentId    CDATA #IMPLIED>

Mit diesem Element werden Kontexte definiert. Wenn mehrere solcher Elemente mit demselben Attribut id vorhanden sind, wird nur das als letztes deklarierte Element (in der Reihenfolge, in der die Plug-in-Registrierung gelesen wird) als gültig betrachtet. Bitte verwenden Sie stattdessen den Erweiterungspunkt org.eclipse.ui.contexts.



Das Element scope wird nicht mehr unterstützt.

<!ELEMENT scope EMPTY>

<!ATTLIST scope

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED

parent      CDATA #IMPLIED>

Mit diesem Element werden Bereiche definiert. Wenn mehrere solcher Elemente mit demselben Attribut id vorhanden sind, wird nur das als letztes deklarierte Element (in der Reihenfolge, in der die Plug-in-Registrierung gelesen wird) als gültig betrachtet. Dieses Element wird nicht mehr unterstützt. Bitte benutzen Sie stattdessen den Erweiterungspunkt "org.eclipse.ui.contexts".



Das Element activeKeyConfiguration wird nicht mehr unterstützt.

<!ELEMENT activeKeyConfiguration EMPTY>

<!ATTLIST activeKeyConfiguration

value              CDATA #IMPLIED

keyConfigurationId CDATA #IMPLIED>

Dieses Element definiert die anfänglich aktive Tastenkonfiguration für Eclipse. Wenn mehrere solcher Elemente vorhanden sind, wird nur das als letztes deklarierte Element (in der Reihenfolge, in der die Plug-in-Registrierung gelesen wird) als gültig betrachtet.

Dieses Element wurde durch eine Benutzervorgabe ersetzt. Wenn Ihre Anwendung die standardmäßige Tastenkonfiguration ändern muss, geben Sie Folgendes in Ihrer Datei plugin_customization.ini an: org.eclipse.ui/KEY_CONFIGURATION_ID=your.default.key.configuration.id.



Das Element keyBinding wird nicht mehr unterstützt.

<!ELEMENT keyBinding EMPTY>

<!ATTLIST keyBinding

configuration      CDATA #IMPLIED

command            CDATA #IMPLIED

locale             CDATA #IMPLIED

platform           CDATA #IMPLIED

contextId          CDATA #IMPLIED

string             CDATA #IMPLIED

scope              CDATA #IMPLIED

keyConfigurationId CDATA #IMPLIED

commandId          CDATA #IMPLIED

keySequence        CDATA #IMPLIED>

Mit diesem Element können Tastenfolgen zu Befehlen zugeordnet werden. Bitte verwenden Sie stattdessen das Element key in dem Erweiterungspunkt "org.eclipse.ui.bindings".



Die Datei plugin.xml im Plug-in org.eclipse.ui setzt den Erweiterungspunkt org.eclipse.ui.commands intensiv ein.

Handler können unter Verwendung von org.eclipse.ui.handlers.IHandlerService für Befehle registriert werden. Dies kann für verschiedene Workbenchkomponenten (z. B. Workbench, Workbench-Fenster, Komponentensite usw.) durch den Aufruf von getService(IHandlerService.class) abgerufen werden.

Im Allgemeinen empfiehlt es sich, alle Befehle statisch zu deklarieren (in der Datei plugin.xml), damit die Benutzer den Befehlen Tastenbelegungen zuordnen können. Es ist jedoch auch möglich, Befehle während der Laufzeit zu deklarieren. Hierzu rufen Sie org.eclipse.ui.commands.ICommandService über einen Workbenchkomponentenaufruf getCommand(yourCommandID) ab, und rufen Sie anschließend Command.define(...) auf.

Es gibt einige wenige Standardimplementierungen von Statusangaben für Handler, die für Benutzer dieses Erweiterungspunkts hilfreich sind: