Opdrachten

org.eclipse.ui.commands

2.1

Het extensiepunt org.eclipse.ui.commands wordt gebruikt voor het declareren van opdrachten en opdrachtcategorieën met behulp van de elementen command (opdracht) en category (categorie). Een opdracht is een abstracte weergave van een semantisch gedrag, maar is geen feitelijke implementatie. Dit betekent dat de verschillende ontwikkelaars specifieke gedragspatronen kunnen leveren voor individuele onderdelen. Er kan bijvoorbeeld een opdracht "plakken" zijn voor een implementatie in een editor en een andere implementatie in een verkenner-widget. Deze implementaties worden afhandelingsroutines genoemd. Opdrachten kunnen ook als declaratieve functie-aanduidingen, of signaalafhandelingsinstructies, worden beschouwd.

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

Dit element wordt gebruikt om opdrachten te definiëren. Een opdracht geeft een aanvraag weer van de gebruiker die kan worden afgehandeld door een actie en tussen de andere opdrachten semantisch uniek moet zijn. Geen opdracht definiëren als al een opdracht met dezelfde betekenis is gedefinieerd. Als meerdere elementen bestaan met hetzelfde id-kenmerk, wordt alleen het element dat het laatste werd gedeclareerd (op basis van de leesvolgorde van het pluginregister) als geldig beschouwd. Raadpleeg de extensiepunten org.eclipse.ui.actionSets en org.eclipse.ui.editorActions voor meer informatie over hoe de opdrachten worden gekoppeld aan acties.



<!ELEMENT category EMPTY>

<!ATTLIST category

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED>

In de gebruikersinterface worden de opdrachten vaak op categorie gerangschikt, om deze bestuurbaar te maken. Dit element wordt gebruikt voor het definiëren van deze categorieën. De opdrachten kunnen zichzelf aan maximaal één categorie toevoegen. Als meerdere elementen bestaan met hetzelfde id-kenmerk, wordt alleen het element dat het laatste werd gedeclareerd (op basis van de leesvolgorde van het pluginregister) als geldig beschouwd.



<!ELEMENT commandParameter (values?)>

<!ATTLIST commandParameter

id       CDATA #REQUIRED

name     CDATA #REQUIRED

values   CDATA #IMPLIED

typeId   CDATA #IMPLIED

optional (true | false) "true">

Definieert een parameter die door de opdracht begrepen moet kunnen worden. Met behulp van parameters kunt u meer informatie aan de afhandelingsroutine leveren bij de uitvoeringstijd. De opdracht "view afbeelden" zou een view als parameter kunnen gebruiken. De afhandelingsroutines moeten in staat zijn deze parameters te begrijpen en moeten dus worden behandeld als API's.

Vanaf: 3.1



<!ELEMENT commandParameterType EMPTY>

<!ATTLIST commandParameterType

id        CDATA #REQUIRED

type      CDATA #IMPLIED

converter CDATA #IMPLIED>

Definieert het objecttype van commandParameter en kan de subklasse org.eclipse.core.commands.AbstractParameterValueConverter verstrekken om tekenreekswaarden naar objecten te converteren en omgekeerd.

Vanaf: 3.2



<!ELEMENT values (parameter*)>

<!ATTLIST values

class CDATA #REQUIRED>

De omslachtigere versie van het kenmerk values voor commandParameter.

Vanaf: 3.1



<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Een mogelijke waarde van een parameter.

Vanaf: 3.1



<!ELEMENT defaultHandler (parameter)>

<!ATTLIST defaultHandler

class CDATA #REQUIRED>

De standaardafhandelingsroutine van deze opdracht. Als geen andere afhandelingsroutine actief is, is dit de actieve afhandelingsroutine. Deze afhandelingsroutine is strijdig met andere definities voor afhandelingsroutines waarvoor geen voorwaarde activeWhen is opgegeven. Als u niet met IExecutableExtension werkt, kunt u in plaats hiervan het kenmerk defaultHandler gebruiken.

Vanaf: 3.1



<!ELEMENT state (class?)>

<!ATTLIST state

class CDATA #IMPLIED

id    CDATA #REQUIRED>

De statusinformatie die voor alle handlers beschikbaar is en tijdens sessies mogelijk vastgehouden wordt. Meestal in de vorm van de status van een aankruisvakje of het label van een handler. De status is slechts een klasse die wordt geladen om de status te bewaken. Zie de API-informatie voor meer details.

Vanaf: 3.2



<!ELEMENT class (parameter*)>

<!ATTLIST class

class CDATA #REQUIRED>

De klasse die kan worden geladen om de status van deze opdracht op te slaan.Dit element wordt gebruikt als u meerdere parameters wilt doorgeven aan org.eclipse.core.runtime.IExecutableExtension.

Vanaf: 3.2



Het element keyConfiguration is gedeprecieerd.

<!ELEMENT keyConfiguration EMPTY>

<!ATTLIST keyConfiguration

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED

parent      CDATA #IMPLIED

parentId    CDATA #IMPLIED>

Dit element wordt gebruikt voor het definiëren van de toetsenconfiguraties. Als meerdere elementen bestaan met hetzelfde id-kenmerk, wordt alleen het element dat het laatste werd gedeclareerd (op basis van de leesvolgorde van het pluginregister) als geldig beschouwd. Gebruik in plaats hiervan het extensiepunt "org.eclipse.ui.bindings".



Het element context is gedeprecieerd.

<!ELEMENT context EMPTY>

<!ATTLIST context

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED

parent      CDATA #IMPLIED

parentId    CDATA #IMPLIED>

Dit element wordt gebruikt voor het definiëren van contexten. Als meerdere elementen bestaan met hetzelfde id-kenmerk, wordt alleen het element dat het laatste werd gedeclareerd (op basis van de leesvolgorde van het pluginregister) als geldig beschouwd. Gebruik in plaats hiervan het extensiepunt org.eclipse.ui.contexts.



Het element scope is gedeprecieerd.

<!ELEMENT scope EMPTY>

<!ATTLIST scope

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED

parent      CDATA #IMPLIED>

Dit element wordt gebruikt om bereiken te definiëren. Als meerdere elementen bestaan met hetzelfde id-kenmerk, wordt alleen het element dat het laatste werd gedeclareerd (op basis van de leesvolgorde van het pluginregister) als geldig beschouwd. @deprecated. Gebruik in plaats hiervan het extensiepunt "org.eclipse.ui.contexts".



Het element activeKeyConfiguration is gedeprecieerd.

<!ELEMENT activeKeyConfiguration EMPTY>

<!ATTLIST activeKeyConfiguration

value              CDATA #IMPLIED

keyConfigurationId CDATA #IMPLIED>

Dit element wordt gebruikt voor het definiëren van de oorspronkelijke actieve toetsenconfiguratie voor Eclipse. Als meer dan een van deze elementen bestaat, wordt alleen het laatst gedeclareerde element (op basis van de leesvolgorde van het pluginregister) als geldig beschouwd.

Dit element is vervangen door een voorkeur. Als voor uw toepassing de standaard toetsenconfiguratie moet worden gewijzigd, geeft u het volgende op in het plugin_customization.ini-bestand: org.eclipse.ui/KEY_CONFIGURATION_ID=your.default.key.configuration.id.



Het element keyBinding is gedeprecieerd.

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

Met behulp van dit element kunnen toetsencombinaties worden toegewezen aan de opdrachten. Gebruik in plaats hiervan het element key in het extensiepunt "org.eclipse.ui.bindings".



Het bestand plugin.xml in de plugin org.eclipse.ui maakt uitgebreid gebruik van het extensiepunt org.eclipse.ui.commands.

Handlers kunnen via org.eclipse.ui.handlers.IHandlerService voor opdrachten worden geregistreerd. U kunt deze interface via diverse workbenchcomponenten (workbench, workbenchvenster, deelsite enzovoort) ophalen door getService(IHandlerService.class) aan te roepen.

Over het algemeen geniet het statisch declareren van alle opdrachten (in plugin.xml) de voorkeur. Er kunnen dan toetskoppelingen aan de opdrachten worden gekoppeld. Opdrachten kunnen echter ook tijdens runtime worden gedeclareerd. U moet dan org.eclipse.ui.commands.ICommandService van een workbenchcomponent ophalen, getCommand(yourCommandID) aanroepen en vervolgens Command.define(...) aanroepen.

Er zijn enkele standaardimplementaties voor handlerstatussen die voor dit extensiepunt nuttig kunnen zijn: