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.
categoryId
. Die eindeutige ID für die Kategorie dieses Befehls. Wenn dieser Befehl keine Kategorie angibt, wird er trotzdem in allen Benutzerschnittstellen angezeigt, zusammen mit anderen speziell kategorisierten Befehlen.
Ab: 3.0
Der Standardhandler für diesen Befehl (siehe Erweiterungspunkt org.eclipse.ui.bindings). Wenn kein anderer Handler aktiv ist, wird dieser Handler aktiviert. Dieser Handler verursacht Konflikte mit anderen Handlern, die keine Bedingungen activeWhen
angeben. Wenn Sie ein Objekt IExecutableExtension
erstellen, können Sie stattdessen das Element defaultHandler
verwenden.
Ab: 3.1
Die ID eines Elements commandParameterType
, die den Typ des Wertes angibt, der von diesem Befehl zurückgegeben wird. Bei Angabe eines Wertes für returnTypeId
können Clients, die den Befehl ausführen, dem zurückgegebenen Wert einen Java-Typ zuordnen und den Wert in ein Zeichenfolgeformat konvertieren, das gespeichert und/oder an einen anderen Befehl übergeben werden kann, der Parameter desselben Typs akzeptiert.
Ab: 3.2
Die Kennung des Hilfekontextes, der mit diesem Befehl im Allgemeinen verbunden ist. Handler können diese Kontextkennung überschreiben, um spezifischere Hilfe für die entsprechenden Verhaltensmöglichkeiten zur Verfügung zu stellen.
Ab: 3.2
<!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
org.eclipse.core.commands.IParameterValues
implementieren. Wenn diese Klasse nicht angegeben ist, müssen Sie das ausführlichere Element values
angeben. Bitte beachten Sie org.eclipse.core.runtime.IExecutableExtension
.<!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
java.lang.Object
als Parametertyp verwendet. org.eclipse.core.commands.AbstractParameterValueConverter
erweitern. Der Converter sollte Objekte des Typs erstellen und verarbeiten, der im Attribut type
angegeben ist. Falls diese Klasse nicht angegeben wird, ist diese Funktion für die Konvertierung zwischen Zeichenfolge- und Objektwerten bei diesem Parametertyp nicht verfügbar (die Methode getValueConverter()
für die Klasse ParameterType
gibt null
zurück). <!ELEMENT values (parameter*)>
<!ATTLIST values
class CDATA #REQUIRED>
Die ausführlichere Version des Attributs values
für commandParameter
.
Ab: 3.1
org.eclipse.core.commands.IParameterValues
implementieren. Wenn diese Klasse nicht angegeben ist, müssen Sie das ausführlichere Element values
angeben. Weitere Informationen finden Sie in den Angaben über org.eclipse.core.runtime.IExecutableExtension
.<!ELEMENT parameter EMPTY>
<!ATTLIST parameter
name CDATA #REQUIRED
value CDATA #REQUIRED>
Ein möglicher Wert für einen Parameter.
Ab: 3.1
IExecutableExtension
zu übergeben ist.IExecutableExtension
zu übergeben ist.<!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
org.eclipse.core.commands.IHandler
implementiert.<!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
org.eclipse.core.commands.State
implementieren. Weitere Angaben finden Sie in den API-Informationen.
Eine eindeutige Kennung für diesen Status. Dieser Wert wird verwendet, damit der Status sitzungsübergreifend bestehen bleibt (falls der Status ein Exemplar von org.eclipse.jface.commands.PersistentState
ist). Bestimmte allgemeine Kennungen (siehe org.eclipse.jface.menus.IMenuStateIds
) sind verständlich, wenn der Befehl in Menüs oder Symbolleisten wiedergegeben wird. Die Kennung muss nur innerhalb des Befehls, der den Status definiert, eindeutig sein.
<!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
org.eclipse.core.commands.State
implementieren. Weitere Angaben finden Sie in den API-Informationen. <!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".
<!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.
<!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".
<!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
.
id
) des Elements "keyConfiguration", das anfänglich aktiv sein soll. id
) des Elements "keyConfiguration", das anfänglich aktiv sein soll. <!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".
java.util.Locale
deklariert ist.platform
sind die gültigen Werte, die durch org.eclipse.swt.SWT.getPlatform()
zurückgegeben werden.schemeId
zu dem Element key
in dem neuen Erweiterungspunkt "org.eclipse.ui.bindings".Die Tastenkombination zur Zuordnung des Befehls. Tastenkombinationen bestehen aus einem oder mehreren Tastenanschlägen (ein Tastenanschlag gilt für eine Taste auf der Tastatur), die optional in Kombination mit einer oder mehreren der Änderungstasten Strg, Alt, Umschalttaste und Befehlstaste gedrückt werden. Tastenanschläge werden durch Leerzeichen, Änderungstasten werden durch das Pluszeichen (+) voneinander getrennt.
Die Kombinationstasten können auch plattformunabhängig ausgedrückt werden. Unter MacOS X wird beispielsweise "Befehl" nahezu immer anstelle von "Strg" verwendet. Wir stellen also "M1" zur Verfügung, was, je nach Lage des Falles, entweder "Strg" oder "Befehl" zugeordnet wird. In ähnlicher Weise entspricht "M2" - "Umschalten"; "M3" - "Alt" und "M4" - "Strg" (MacOS X). Wenn weitere Plattformen hinzugefügt werden, können Sie sich darauf verlassen, dass diese Aliasnamen dem entsprechenden Plattformstandard zugeordnet werden.
Die Syntax für diese Zeichenfolge wird in org.eclipse.ui.internal.keys
definiert. Eigentlich muss bei der Zeichenfolge die Groß-/Kleinschreibung nicht beachtet werden - obschon bei allen Großschreibung aus stilistischen Gründen bevorzugt wird. Wenn es sich bei der Taste um einen Buchstaben handelt, fügen Sie einfach den Buchstaben hinzu. Wenn es sich bei der Taste um ein Sonderzeichen handelt (d.h. kein ASCII-Zeichen), verwenden Sie eine der Folgenden: ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, ARROW_UP, BREAK, CAPS_LOCK, END, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15, HOME, INSERT, NUM_LOCK, NUMPAD_0, NUMPAD_1, NUMPAD_2, NUMPAD_3, NUMPAD_4, NUMPAD_5, NUMPAD_6, NUMPAD_7, NUMPAD_8, NUMPAD_9, NUMPAD_ADD, NUMPAD_DECIMAL, NUMPAD_DIVIDE, NUMPAD_ENTER, NUMPAD_EQUAL, NUMPAD_MULTIPLY, NUMPAD_SUBTRACT, PAGE_UP, PAGE_DOWN, PAUSE, PRINT_SCREEN oder SCROLL_LOCK. Wenn es sich bei der Taste um eine nicht druckbare ASCII-Taste handelt, verwenden Sie eines der Folgenden: BS, CR, DEL, ESC, FF, LF, NUL, SPACE, TAB oder VT. Beachten Sie, dass die Eingabetaste auf der Haupttastatur CR ist.
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:
Copyright (c) 2000, 2005 IBM Corporation und Andere.
Alle Rechte vorbehalten. Dieses Programm und sein Begleitmaterial werden gemäß den Bedingungen der "Eclipse Public License v1.0" zur Verfügung gestellt, die dieser Lieferung beiliegt und unter
http://www.eclipse.org/legal/epl-v10.html abgerufen werden kann.