Komendy

org.eclipse.ui.commands

2.1

Punkt rozszerzenia org.eclipse.ui.commands służy do deklarowania komend i kategorii komend przy użyciu elementów command i category. Komenda jest abstrakcyjną reprezentacją semantycznego zachowania, ale nie jest rzeczywistą implementacją. Umożliwia to różnym programistom wnoszenie określonego zachowania w należących do nich częściach kodu. Na przykład komenda "wklej" może posiadać jedną implementację w edytorze, a inną w widgecie eksploratora. Takie implementacje są nazywane procedurami obsługi.

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

<!ATTLIST extension

id    CDATA #IMPLIED

name  CDATA #IMPLIED

point CDATA #REQUIRED>


<!ELEMENT activeKeyConfiguration EMPTY>

<!ATTLIST activeKeyConfiguration

value              CDATA #IMPLIED

keyConfigurationId CDATA #IMPLIED>

Ten element służy do definiowania początkowej konfiguracji aktywnych klawiszy dla środowiska Eclipse. Jeśli istnieje więcej niż jeden tego rodzaju element, tylko ostatni zadeklarowany element (w kolejności wynikającej z odczytu rejestru modułów dodatkowych) jest uznawany za poprawny.

Ten element został zastąpiony preferencją. Jeśli aplikacja musi zmienić domyślną konfigurację klawiszy, w pliku plugin_customization.ini należy podać następujące informacje: org.eclipse.ui/KEY_CONFIGURATION_ID=your.default.key.configuration.id.



<!ELEMENT category EMPTY>

<!ATTLIST category

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED>

W interfejsie użytkownika komendy są często organizowane z podziałem na kategorie, aby można było nimi łatwiej zarządzać. Ten element służy do definiowania tych kategorii. Komendy dodaje się co najwyżej do jednej kategorii. Jeśli istnieje więcej niż jeden element z tym samym atrybutem id, tylko ostatni zadeklarowany element (w kolejności wynikającej z odczytu rejestru modułów dodatkowych) jest uznawany za poprawny.



<!ELEMENT command (commandParameter | defaultHandler?)>

<!ATTLIST command

category       CDATA #IMPLIED

description    CDATA #IMPLIED

id             CDATA #REQUIRED

name           CDATA #REQUIRED

categoryId     CDATA #IMPLIED

defaultHandler CDATA #IMPLIED>

Ten element służy do definiowania komend. Komenda reprezentuje zgłoszone przez użytkownika żądanie wykonania określonej akcji. Powinna być semantycznie unikalna wśród innych komend. Nie należy definiować nowej komendy, jeśli istnieje już zdefiniowana komenda o takim samym znaczeniu. Jeśli istnieje więcej niż jeden element z tym samym atrybutem id, tylko ostatni zadeklarowany element (w kolejności wynikającej z odczytu rejestru modułów dodatkowych) jest uznawany za poprawny. Aby zrozumieć powiązanie między akcjami i komendami, należy zapoznać się z punktami rozszerzeń org.eclipse.ui.actionSets oraz org.eclipse.ui.editorActions.



<!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>

Ten element służy do przypisywania sekwencji klawiszy do komend. W zamian należy użyć elementu key w punkcie rozszerzenia org.eclipse.ui.bindings.



<!ELEMENT keyConfiguration EMPTY>

<!ATTLIST keyConfiguration

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED

parent      CDATA #IMPLIED

parentId    CDATA #IMPLIED>

Ten element służy do definiowania konfiguracji klawiszy. Jeśli istnieje więcej niż jeden element z tym samym atrybutem id, tylko ostatni zadeklarowany element (w kolejności wynikającej z odczytu rejestru modułów dodatkowych) jest uznawany za poprawny. W zamian należy użyć punktu rozszerzenia org.eclipse.ui.bindings.



<!ELEMENT context EMPTY>

<!ATTLIST context

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED

parent      CDATA #IMPLIED

parentId    CDATA #IMPLIED>

Ten element służy do definiowania kontekstów. Jeśli istnieje więcej niż jeden element z tym samym atrybutem id, tylko ostatni zadeklarowany element (w kolejności wynikającej z odczytu rejestru modułów dodatkowych) jest uznawany za poprawny. W zamian należy użyć punktu rozszerzenia org.eclipse.ui.contexts.



<!ELEMENT scope EMPTY>

<!ATTLIST scope

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED

parent      CDATA #IMPLIED>

Ten element służy do definiowania zasięgów. Jeśli istnieje więcej niż jeden element z tym samym atrybutem id, tylko ostatni zadeklarowany element (w kolejności wynikającej z odczytu rejestru modułów dodatkowych) jest uznawany za poprawny. @Element nieaktualny - w zamian należy użyć punktu rozszerzenia "org.eclipse.ui.contexts".



<!ELEMENT commandParameter (values)>

<!ATTLIST commandParameter

id       CDATA #REQUIRED

name     CDATA #REQUIRED

values   CDATA #IMPLIED

optional (true | false) "true">

Definiuje parametr zrozumiały dla komendy. Parametr umożliwia przekazanie dodatkowych informacji do procedury obsługi w czasie wykonywania. Na przykład parametrem komendy wyświetlenia widoku może być nazwa widoku. Te parametry powinny być zrozumiałe dla procedur obsługi i dlatego procedury te powinny być traktowane jak funkcje API.



<!ELEMENT values (parameter)>

<!ATTLIST values

class CDATA #REQUIRED>

Bardziej szczegółowa wersja atrybutu values elementu commandParameter.



<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Dozwolona wartość parametru.



<!ELEMENT defaultHandler (parameter)>

<!ATTLIST defaultHandler

class CDATA #REQUIRED>

Domyślna procedura obsługi dla tej komendy. Ta procedura obsługi będzie aktywna, jeśli nie zostanie aktywowana żadna inna procedura obsługi. Ta procedura obsługi będzie wchodzić w konflikty z innymi definicjami procedur obsługi, które nie określają warunków activeWhen. W zastępstwie podczas tworzenia interfejsu IExecutableExtension można używać atrybutu defaultHandler.



Plik plugin.xml w module dodatkowym org.eclipse.ui korzysta w znacznym stopniu z punktu rozszerzenia org.eclipse.ui.commands.

Poza tym punktem rozszerzenia nie ma publicznych interfejsów API służących do deklarowania komend, kategorii, przypisań klawiszy, konfiguracji klawiszy lub kontekstów. Publiczny interfejs API służący do tworzenia zapytań i ustawiania kontekstów, a także do rejestrowania akcji obsługujących określone komendy, można znaleźć w interfejsie org.eclipse.ui.IKeyBindingService.