Kommandoer

org.eclipse.ui.commands

2.1

Udvidelsespunktet org.eclipse.ui.commands bruges til at erklære kommandoer og kommandokategorier vha. elementerne command og category. En kommando er en abstrakt repræsentation af en semantisk funktionsmåde, men det er ikke en faktisk implementering. Den giver forskellige udviklere mulighed for at tilføre specifikke funktionsmåder for deres individuelle dele. Der kan f.eks. være en "Klistre"-kommando med én implementering i en editor og en anden implementering i et Explorer-element. Disse implementeringer kaldes behandlere. Kommandoer kan også vises som deklarative funktionspointere 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 element bruges til at definere kommandoer. En kommando repræsenterer en anmodning fra brugeren, som kan behandles af en funktion og bør være semantisk entydig i forhold til andre kommandoer. Undlad at definere en kommando, hvis der allerede er én defineret med samme betydning. Hvis der er flere af disse elementer med samme id-attribut, betragtes kun det sidst erklærede element (i læserækkefølgen for plugin'en i registreringsdatabasen) som gyldigt. Se udvidelsespunkterne org.eclipse.ui.actionSets og org.eclipse.ui.editorActions for at forstå, hvordan funktioner er forbundet med kommandoer.



<!ELEMENT category EMPTY>

<!ATTLIST category

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED>

I brugergrænsefladen er kommandoerne ofte organiseret efter kategori, så de er nemmere at styre. Dette element bruges til at definere disse kategorier. Kommandoer kan højst tilføje sig selv til én kategori. Hvis der er flere af disse elementer med samme id-attribut, betragtes kun det sidst erklærede element (i læserækkefølgen for plugin'en i registreringsdatabasen) som gyldigt.



<!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 parameter er en metode til at levere flere oplysninger til en behandler på udførelsestidspunktet. Kommandoen "Vis oversigt" kan f.eks. anvende en oversigt som parameter. Behandlere skal kunne forstå disse parametre, så de skal behandles som API.

Fra: 3.1



<!ELEMENT commandParameterType EMPTY>

<!ATTLIST commandParameterType

id        CDATA #REQUIRED

type      CDATA #IMPLIED

converter CDATA #IMPLIED>

Angiver objekttypen for en commandParameter og kan angive en org.eclipse.core.commands.AbstractParameterValueConverter-underklasse, der kan konvertere mellem strengparameterværdier og objekter.

Fra: 3.2



<!ELEMENT values (parameter*)>

<!ATTLIST values

class CDATA #REQUIRED>

Den mere detaljerede version af attributten valuescommandParameter.

Fra: 3.1



<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

name  CDATA #REQUIRED

value CDATA #REQUIRED>

En mulig værdi for en parameter.

Fra: 3.1



<!ELEMENT defaultHandler (parameter)>

<!ATTLIST defaultHandler

class CDATA #REQUIRED>

Standardbehandleren for denne kommando. Hvis der ikke er andre aktive behandlere, bliver denne behandler aktiv. Denne behandler kommer i konflikt med andre behandlerdefinitioner, der ikke angiver nogen activeWhen-betingelser. Hvis du ikke opretter en IExecutableExtension, kan du bruge attributten defaultHandler i stedet for.

Fra: 3.1



<!ELEMENT state (class?)>

<!ATTLIST state

class CDATA #IMPLIED

id    CDATA #REQUIRED>

Tilstandsoplysninger, der deles mellem behandlere og er potentielt vedvarende mellem sessioner. Disse er typisk f.eks. et afkrydsningsfelt eller en etiket til en behandler. Tilstanden er simpelthen en klasse, der indlæses til at se efter tilstanden. Se API-oplysningerne for at få flere detaljer.

Fra: 3.2



<!ELEMENT class (parameter*)>

<!ATTLIST class

class CDATA #REQUIRED>

Klassen kan indlæses til at lagre tilstanden for denne kommando. Dette element anvendes, hvis du vil overføre flere parametre til en org.eclipse.core.runtime.IExecutableExtension.

Fra: 3.2



Elementet keyConfiguration er forældet.

<!ELEMENT keyConfiguration EMPTY>

<!ATTLIST keyConfiguration

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED

parent      CDATA #IMPLIED

parentId    CDATA #IMPLIED>

Dette element bruges til at definere tastkonfigurationer. Hvis der er flere af disse elementer med samme id-attribut, betragtes kun det sidst erklærede element (i læserækkefølgen for plugin'en i registreringsdatabasen) som gyldigt. Brug udvidelsespunktet "org.eclipse.ui.bindings" i stedet for.



Elementet context er forældet

<!ELEMENT context EMPTY>

<!ATTLIST context

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED

parent      CDATA #IMPLIED

parentId    CDATA #IMPLIED>

Dette element bruges til at definere kontekster. Hvis der er flere af disse elementer med samme id-attribut, betragtes kun det sidst erklærede element (i læserækkefølgen for plugin'en i registreringsdatabasen) som gyldigt. Brug udvidelsespunktet org.eclipse.ui.contexts i stedet for.



Elementet scope er forældet.

<!ELEMENT scope EMPTY>

<!ATTLIST scope

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED

parent      CDATA #IMPLIED>

Dette element bruges til at definere omfang. Hvis der er flere af disse elementer med samme id-attribut, betragtes kun det sidst erklærede element (i læserækkefølgen for plugin'en i registreringsdatabasen) som gyldigt. Forældet. Brug udvidelsespunktet "org.eclipse.ui.contexts" i stedet for.



Elementet activeKeyConfiguration er forældet.

<!ELEMENT activeKeyConfiguration EMPTY>

<!ATTLIST activeKeyConfiguration

value              CDATA #IMPLIED

keyConfigurationId CDATA #IMPLIED>

Dette element bruges til at definere den indledende aktive tastkonfiguration for Eclipse. Hvis der er flere af disse elementer, betragtes kun det sidst erklærede element (i læserækkefølgen for plugin'en i registreringsdatabasen) som gyldigt.

Dette element er erstattet med en indstilling. Hvis programmet skal ændre standardtastkonfigurationen, skal du angive følgende i filen plugin_customization.ini: org.eclipse.ui/KEY_CONFIGURATION_ID=your.default.key.configuration.id.



Elementet keyBinding er forældet.

<!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 element giver mulighed for at knytte tastsekvenser til kommandoer. Brug elementet key i udvidelsespunktet "org.eclipse.ui.bindings" i stedet for.



Filen plugin.xml i plugin'en org.eclipse.ui anvender i stort omfang udvidelsespunktet org.eclipse.ui.commands.

Behandlere kan registreres med kommandoer vha. org.eclipse.ui.handlers.IHandlerService. Disse kan hentes fra forskellige arbejdsbænkkomponenter, f.eks. arbejdsbænk, arbejdsbænkvindue, partwebsteder osv. ved at kaldegetService(IHandlerService.class).

Generelt er det at foretrække at erklære alle kommandoer statisk (i plugin.xml). Det er sådan, at brugere kan knytte tastbindinger til kommandoer. Det er imidlertid muligt at erklære kommandoer ved runtime. Hvis du vil gøre dette, skal du hente org.eclipse.ui.commands.ICommandService fra en arbejdsbænkkomponent, kaldegetCommand(yourCommandID) og derefter kalde Command.define(...).

Der er nogle få standardimplementeringer af behandlertilstande, der kan være nyttige for andre brugere af dette udvidelsespunkt: