Kommandoer

org.eclipse.ui.commands

2.1

Utvidelsespunktet org.eclipse.ui.commands blir brukt til å deklarere kommandoer og kommandokategorier ved hjelp av elementene command og category. En kommando er en abstrakt fremstilling av semantisk virkemåte, men ikke den faktiske implementeringen. Dette gjør at forskjellige utviklere kan bidra med bestemt virkemåte for de enkelte delene. En "lim inn"-kommando kan for eksempel ha en bestemt implementering i et redigeringsprogram og en annen implementering i en utforsker-widget. Disse implementeringene kalles behandlere. Kommandoer kan også vises som deklarative funksjonspekere eller signalbehandlere.

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

Dette elementet blir brukt til å definere kommandoer. En kommando representerer en forespørsel fra brukeren som kan behandles av en handling, og den skal være semantisk unik blant andre kommandoer. Ikke definer en kommando hvis det allerede er definert en med samme betydning. Hvis det er flere slike elementer med samme id-attributt, er det bare elementet som sist ble deklarert (i rekkefølgen plugin-registeret leses) som anses som gyldig. S utvidelsespunktene org.eclipse.ui.actionSets og org.eclipse.ui.editorActions for å forstå hvordan handlinger er knyttet til kommandoer.



<!ELEMENT category EMPTY>

<!ATTLIST category

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED>

I brukergrensesnittet blir kommandoer ofte organisert etter kategori for at det skal være enklere å administrere dem. Dette elementet blir brukt til å definere disse kategoriene. Kommandoer kan legges til i høyst en kategori. Hvis det er flere slike elementer med samme id-attributt, er det bare elementet som sist ble deklarert (i rekkefølgen plugin-registeret leses) som anses som gyldig.



<!ELEMENT commandParameter (values?)>

<!ATTLIST commandParameter

id       CDATA #REQUIRED

name     CDATA #REQUIRED

values   CDATA #IMPLIED

typeId   CDATA #IMPLIED

optional (true | false) "true">

Definerer en parameter som en kommando skal forstå. En parmeter er en måte å levere mer informasjon til en behandler under utføringen på. For eksempel kan en "Vis visning"-kommando ta en visning som en parameter. Behandlerne skal kunne forstå disse parameterne, så de skal behandles som API.

Siden: 3.1



<!ELEMENT commandParameterType EMPTY>

<!ATTLIST commandParameterType

id        CDATA #REQUIRED

type      CDATA #IMPLIED

converter CDATA #IMPLIED>

Definerer objekttypen til en commandParameter og kan spesifisere en org.eclipse.core.commands.AbstractParameterValueConverter-subklasse for å konvertere mellom strengparameterverdier og objekter.

Siden: 3.2



<!ELEMENT values (parameter*)>

<!ATTLIST values

class CDATA #REQUIRED>

Den mer detaljerte versjonen av values-attributtet i commandParameter.

Siden: 3.1



<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

name  CDATA #REQUIRED

value CDATA #REQUIRED>

En mulig verdi for en parameter.

Siden: 3.1



<!ELEMENT defaultHandler (parameter)>

<!ATTLIST defaultHandler

class CDATA #REQUIRED>

Standardbehandleren for denne kommandoen. Hvis ingen andre behandlere er aktive, blir denne behandleren aktiv. Denne behandleren kommer i konflikt med andre behandlerdefinisjoner som ikke oppgir activeWhen-betingelser. Hvis du ikke oppretter en IExecutableExtension, kan du i stedet bruke defaultHandler-attributtet.

Siden: 3.1



<!ELEMENT state (class?)>

<!ATTLIST state

class CDATA #IMPLIED

id    CDATA #REQUIRED>

Statusinformasjon deles blant alle behandlere, og kan potensielt fortsettes mellom sesjoner. Dette er typisk noe slikt som en avmerkingsboksstatus eller etikett for en behandler. Status er bare en klasse som er lastet inn for å overvåke statusen. Du finner nærmere opplysninger i API-informasjonen.

Siden: 3.2



<!ELEMENT class (parameter*)>

<!ATTLIST class

class CDATA #REQUIRED>

Klassen som kan lastes inn for å lagre status for denne kommandoen. Dette elementet brukes hvis du ønsker å sende flere parametere til en org.eclipse.core.runtime.IExecutableExtension.

Siden: 3.2



Elementet keyConfiguration er foreldet.

<!ELEMENT keyConfiguration EMPTY>

<!ATTLIST keyConfiguration

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED

parent      CDATA #IMPLIED

parentId    CDATA #IMPLIED>

Dette elementet blir brukt til å definere tastkonfigurasjoner. Hvis det er flere slike elementer med samme id-attributt, er det bare elementet som sist ble deklarert (i rekkefølgen plugin-registeret leses) som anses som gyldig. Bruk i stedet "org.eclipse.ui.bindings"-utvidelsespunktet.



Elementet context er foreldet.

<!ELEMENT context EMPTY>

<!ATTLIST context

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED

parent      CDATA #IMPLIED

parentId    CDATA #IMPLIED>

Dette elementet blir brukt til å definere kontekster. Hvis det er flere slike elementer med samme id-attributt, er det bare elementet som sist ble deklarert (i rekkefølgen plugin-registeret leses) som anses som gyldig. Bruk i stedet utvidelsespunktet org.eclipse.ui.contexts.



Elementet scope er foreldet.

<!ELEMENT scope EMPTY>

<!ATTLIST scope

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED

parent      CDATA #IMPLIED>

Dette elementet blir brukt til å definere omfang. Hvis det er flere slike elementer med samme id-attributt, er det bare elementet som sist ble deklarert (i rekkefølgen plugin-registeret leses) som anses som gyldig. @deprecated Bruk i stedet utvidelsespunktet "org.eclipse.ui.contexts".



Elementet activeKeyConfiguration er foreldet.

<!ELEMENT activeKeyConfiguration EMPTY>

<!ATTLIST activeKeyConfiguration

value              CDATA #IMPLIED

keyConfigurationId CDATA #IMPLIED>

Elementet blir brukt til å definere den første aktive tastkonfigurasjonen for Eclipse. Hvis det er flere slik elementer, er det bare det elementet som sist ble deklarert (i rekkefølgen plugin-registeret leses) som anses som gyldig.

Elementet er erstattet med en preferanse. Hvis applikasjonen må endre standard tastkonfigurasjon, oppgir du følgende i plugin_customization.ini-filen: org.eclipse.ui/KEY_CONFIGURATION_ID=your.default.key.configuration.id.



Elementet keyBinding er foreldet.

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

Dette elementet gjør det mulig å tildele tastsekvenser til kommandoer. Bruk i stedet key-elementet i "org.eclipse.ui.bindings"-utvidelsespunktet.



Filen plugin.xml i plugin-modulen org.eclipse.ui har utstrakt bruk av utvidelsespunktet org.eclipse.ui.commands.

Behandlere kan registreres med kommandoer ved hjelp av org.eclipse.ui.handlers.IHandlerService. Denne kan hentes fra forskjellige arbeidsbenkkomponenter (f.eks. arbeidsbenk, arbeidsbenkvindu, delsted osv.) ved å kalle opp getService(IHandlerService.class).

Vanligvis er det å foretrekke å deklarere alle kommandoer statisk (i plugin.xml). Dermed kan alle brukere knytte tastbindinger til kommandoene. Det er imidlertid mulig å deklarere dem ved kjøring. Det gjør du ved å hente org.eclipse.ui.commands.ICommandService fra en arbeidsbenkkomponent og kalle opp getCommand(yourCommandID) så kalle opp Command.define(...).

Det er enkelte standardimplementeringer for behandlerstatuser som kan vøre nyttige for brukere av dette utvidelsespunktet: