Kommandon

org.eclipse.ui.commands

2.1

Utökningspunkten org.eclipse.ui.commands används för att deklarera kommandon och kommandokategorier med hjälp av elementen command och category. Ett kommando är en abstrakt representation av en viss semantisk funktion men det är inte den verkliga implementationen. Med hjälp av kommandot kan utvecklare bidra med specifika funktioner för deras enskilda delar. Det kan t.ex. finnas ett "klistra in"-kommando med en implementation i en redigerare och en annan implementation i en gränssnittskontroll för utforskning. Dessa implementationer kallas för hanterare. Kommandon kan även visas som deklarativa funktionspekare eller signalhanterare.

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

Det här elementet används för att definiera kommandon. Ett kommando representerar en begäran från användaren som kan hanteras med en åtgärd och som ska vara semantiskt unikt bland andra kommandon. Definiera inte ett kommando om det redan finns ett kommando som betyder samma sak. Om det finns fler av dessa element med samma id-attribut är det bara det senast deklarerade elementet (i läsordning av insticksprogrammets register) som betraktas som giltigt. Se utökningspunkterna org.eclipse.ui.actionSets och org.eclipse.ui.editorActions om du vill veta mer om hur åtgärder kopplas till kommandon.



<!ELEMENT category EMPTY>

<!ATTLIST category

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED>

I användargränssnittet ordnas kommandon ofta efter kategori, i syfte att göra dem lättare att hantera. Det här elementet används för att definiera dessa kategorier. Kommandon kan lägga till sig själva i maximalt en kategori. Om det finns fler av dessa element med samma id-attribut är det bara det senast deklarerade elementet (i läsordning av insticksprogrammets register) som betraktas som giltigt.



<!ELEMENT commandParameter (values?)>

<!ATTLIST commandParameter

id       CDATA #REQUIRED

name     CDATA #REQUIRED

values   CDATA #IMPLIED

typeId   CDATA #IMPLIED

optional (true | false) "true">

Definierar en parameter som kan förstås av ett kommando. En parameter är ett sätt att ange mer information till en hanterare vid körningstillfället. Kommandot "visa vy" kan t.ex. ta emot ett vynamn som parameter. Hanterare ska kunna förstå dessa parametrar, så de ska behandlas som APIer.

Sedan: 3.1



<!ELEMENT commandParameterType EMPTY>

<!ATTLIST commandParameterType

id        CDATA #REQUIRED

type      CDATA #IMPLIED

converter CDATA #IMPLIED>

Definierar objekttypen för en commandParameter och kan ange en org.eclipse.core.commands.AbstractParameterValueConverter-underklass för konvertering mellan strängparametervärden och objekt.

Sedan: 3.2



<!ELEMENT values (parameter*)>

<!ATTLIST values

class CDATA #REQUIRED>

Den mer detaljerade versionen av values-attributet i commandParameter.

Sedan: 3.1



<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Ett möjligt värde för en parameter.

Sedan: 3.1



<!ELEMENT defaultHandler (parameter)>

<!ATTLIST defaultHandler

class CDATA #REQUIRED>

Standardhanteraren för det här kommandot. Om det inte finns någon annan aktiv hanterare aktiveras den här hanteraren. Hanteraren får konflikt med andra hanterardefinitioner som inte anger några activeWhen-villkor. Om du inte skapar en IExecutableExtension kan du i stället använda attributet defaultHandler.

Sedan: 3.1



<!ELEMENT state (class?)>

<!ATTLIST state

class CDATA #IMPLIED

id    CDATA #REQUIRED>

Lägesinformation som delas av alla hanterare och som även kan behållas mellan sessioner. Det är vanligen till exempel en kryssruta eller etiketten för en hanterare. Läget är helt enkelt en klass som läses in för att kontrollera läget. Mer information finns i avsnittet om API-information.

Sedan: 3.2



<!ELEMENT class (parameter*)>

<!ATTLIST class

class CDATA #REQUIRED>

En klass som kan läsas in för att lagra läget för det här kommandot. Det elementet används om du vill överföra flera parametrar till en org.eclipse.core.runtime.IExecutableExtension.

Sedan: 3.2



keyConfiguration-elementet är utkommenterat

<!ELEMENT keyConfiguration EMPTY>

<!ATTLIST keyConfiguration

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED

parent      CDATA #IMPLIED

parentId    CDATA #IMPLIED>

Det här elementet används för att definiera tangentkonfigurationer. Om det finns fler av dessa element med samma id-attribut är det bara det senast deklarerade elementet (i läsordning av insticksprogrammets register) som betraktas som giltigt. Använd i stället utökningspunkten "org.eclipse.ui.bindings".



context-elementet är utkommenterat

<!ELEMENT context EMPTY>

<!ATTLIST context

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED

parent      CDATA #IMPLIED

parentId    CDATA #IMPLIED>

Det här elementet används för att definiera kontexter. Om det finns fler av dessa element med samma id-attribut är det bara det senast deklarerade elementet (i läsordning av insticksprogrammets register) som betraktas som giltigt. Använd i stället utökningspunktenorg.eclipse.ui.contexts.



scope-elementet är utkommenterat

<!ELEMENT scope EMPTY>

<!ATTLIST scope

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED

parent      CDATA #IMPLIED>

Det här elementet används för att definiera omfång. Om det finns fler av dessa element med samma id-attribut är det bara det senast deklarerade elementet (i läsordning av insticksprogrammets register) som betraktas som giltigt. @deprecated Använd i stället utökningspunkten "org.eclipse.ui.contexts".



activeKeyConfiguration-elementet är utkommenterat

<!ELEMENT activeKeyConfiguration EMPTY>

<!ATTLIST activeKeyConfiguration

value              CDATA #IMPLIED

keyConfigurationId CDATA #IMPLIED>

Elementet används för att definiera den initiala konfigurationen av aktiv tangent för Eclipse. Om det finns flera av dessa element anses bara det senast deklarerade elementet (i läsordning av insticksprogrammets register) vara giltigt.

Elementet har ersatts av en inställning. Om tillämpningen behöver ändra standardtangentkonfigurationen anger du följande i filen plugin_customization.ini: org.eclipse.ui/KEY_CONFIGURATION_ID=your.default.key.configuration.id.



keyBinding-elementet är utkommenterat

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

Med det här elementet kan du tilldela tangentsekvenser till kommandon. Använd i stället key-elementet i utökningspunkten "org.eclipse.ui.bindings".



Filen plugin.xml i insticksprogrammet org.eclipse.ui använder utökningspunkten org.eclipse.ui.commands i hög grad.

Hanterare kan registreras med kommandon där org.eclipse.ui.handlers.IHandlerService används. Du kan hämta den från olika arbetsmiljökomponenter (till exempel arbetsmiljö, arbetsmiljöfönster, delplats) genom att anropa getService(IHandlerService.class).

I allmänhet är det bättre att deklarera alla kommandon statistiskt (i plugin.xml). Det är för att användare ska kunna skapa tangentbidningar till kommandona. Det är dock möjligt att deklarera kommendon under körning. Om du vill göra det hämtar du org.eclipse.ui.commands.ICommandService från en arbetsmiljökomponent, anropar getCommand(yourCommandID) och anropar sedan Command.define(...).

Det finns några standardimplementeringar för hanterarlägen som kan vara praktiskt att känna till för de som använder den här utökningspunkten: