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.
categoryId
. Het unieke ID van de categorie voor deze opdracht. Als voor deze opdracht geen categorie is opgegeven, verschijnt deze in de gehele gebruikersinterface naast andere specifiek gecategoriseerde opdrachten.
Vanaf: 3.0
De standaard afhandelingsroutine voor deze opdracht (zie het extensiepunt org.eclipse.ui.bindings). 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 met IExecutableExtension
werkt, kunt u in plaats hiervan het element defaultHandler
gebruiken.
Vanaf: 3.1
Het ID van een commandParameterType
-item, waarmee het type wordt bepaald van de waarde die door deze opdracht wordt geretourneerd. Met returnTypeId
kan een client die de opdracht uitvoert de retourwaarde aan een Java-type koppelen en de waarde naar het type String converteren. De waarde kan vervolgens worden doorgegeven aan of opgeslagen in een opdracht die parameters van hetzelfde type accepteert.
Vanaf: 3.2
De identificatie van de Help-context die in het algemeen op deze opdracht betrekking heeft. Deze contextidentificatie kan door een handler worden vervangen om Help te bieden die nauwer aansluit op een bepaald gedrag.
Vanaf: 3.2
<!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
org.eclipse.core.commands.IParameterValues
. Als de klasse niet is opgegeven, moet u het omslachtigere element values
opgeven. Zie org.eclipse.core.runtime.IExecutableExtension
. <!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
java.lang.Object
als parametertype gebruikt. org.eclipse.core.commands.AbstractParameterValueConverter
uitbreiden. De converteerder moet werken met objecten van het type dat in het kenmerk type
is ingesteld. Als u deze klasse niet opgeeft, zijn conversies niet mogelijk voor dit parametertype (het resultaat van getValueConverter()
in de klasse ParameterType
geeft null
als resultaat). <!ELEMENT values (parameter*)>
<!ATTLIST values
class CDATA #REQUIRED>
De omslachtigere versie van het kenmerk values
voor commandParameter
.
Vanaf: 3.1
org.eclipse.core.commands.IParameterValues
. Als de klasse niet is opgegeven, moet u het omslachtigere element values
opgeven. Zie org.eclipse.core.runtime.IExecutableExtension
. <!ELEMENT parameter EMPTY>
<!ATTLIST parameter
name CDATA #REQUIRED
value CDATA #REQUIRED>
Een mogelijke waarde van een parameter.
Vanaf: 3.1
IExecutableExtension
.IExecutableExtension
.<!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
org.eclipse.core.commands.IHandler
implementeert. <!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
org.eclipse.core.commands.State
implementeren. Raadpleeg de API-informatie.
Een uniek ID voor deze status. Hiermee kan de status tussen sessies worden vastgehouden (als de status een instance van org.eclipse.jface.commands.PersistentState
is). Er zijn bepaalde gangbare identificaties (zie org.eclipse.jface.menus.IMenuStateIds
) die kunnen worden geïnterpreteerd wanneer de opdracht in een menu of op een werkbalk wordt afgebeeld. De identificatie hoeft alleen uniek te zijn in de opdracht waarin de status wordt gedefinieerd.
<!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
org.eclipse.core.commands.State
implementeren. Raadpleeg de API-informatie.<!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".
<!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.
<!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".
<!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
.
id
) van het keyConfiguration-element dat als eerste actief moet zijn.id
) van het keyConfiguration-element dat als eerste actief moet zijn. <!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".
java.util.Locale
is gedeclareerd. platform
staan in de set met mogelijke waarden die wordt teruggezonden door org.eclipse.swt.SWT.getPlatform()
. schemeId
voor het element key
in het nieuwe extensiepunt "org.eclipse.ui.bindings". De toetsencombinatie die aan de opdracht wordt toegewezen. De toetsencombinaties bestaan uit een of meer aanslagen. Een toetsaanslag bestaat uit een toets op het toetsenbord die optioneel in combinatie met een van de modificaties Ctrl, Alt, Shift of Command wordt gebruikt. De toetsaanslagen worden van elkaar gescheiden door spaties en de modificatietoetsen worden van elkaar gescheiden door het +-teken.
De combinatietoetsen kunnen ook worden uitgedrukt op een manier die niet platform-afhankelijk is. Op MacOS X bijvoorbeeld wordt bijna altijd de toets "Command" gebruikt in plaats van de "Ctrl"-toets. Afhankelijk van het platform wordt nu aan "M1" de toets "Ctrl" of de toets "Command" toegewezen. Op dezelfde manier staan "M2" voor "Shift"; "M3" voor "Alt"; en "M4" voor "Ctrl" (MacOS X). Als meer platforms worden toegevoegd, kunt u erop rekenen dat deze aliassen op de juiste wijze aan de platformstandaarden worden toegewezen.
De syntaxis voor deze tekenreeks wordt gedefinieerd in org.eclipse.ui.internal.keys
. De reeks is niet hoofdlettergevoelig, hoewel het gebruik van alleen hoofdletters de voorkeur geniet vanwege stilistische redenen. Als de toets een letter is, gebruikt u eenvoudig de letter. Als de toets een speciale toets is (oftewel niet-ASCII), gebruikt u een van de volgende mogelijkheden: ARROW_DOWN (pijl omlaag), ARROW_LEFT (pijl naar links), ARROW_RIGHT (pijl naar rechts), ARROW_UP (pijl omhoog), BREAK, CAPS_LOCK, END, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15, HOME, INSERT, NUM_LOCK, NUMPAD_0, NUMPAD_1, NUMPAD_2, NUMPAD_3, NUMPAD_4, NUMPAD_5, NUMPAD_6, NUMPAD_7, NUMPAD_8, NUMPAD_9, NUMPAD_ADD (plusteken numeriek toetsenblok), NUMPAD_DECIMAL (decimaalteken numeriek toetsenblok), NUMPAD_DIVIDE (deelteken numeriek toetsenblok), NUMPAD_ENTER (Enter numeriek toetsenblok), NUMPAD_EQUAL (isgelijkteken numeriek toetsenblok), NUMPAD_MULTIPLY (vermenigvuldigingsteken numeriek toetsenblok), NUMPAD_SUBTRACT (minteken numeriek toetsenblok), PAGE_UP, PAGE_DOWN, PAUSE, PRINT_SCREEN of SCROLL_LOCK. Als de toets een niet-afdrukbare ASCII-toets is, kunt u een van de volgende toetsen gebruiken: BS (BackSpace), CR (CarriageReturn, terugloop), DEL, ESC, FF (FormFeed, papiertransport), LF (LineFeed, regelopschuiving), NUL (null), SPACE (spatie), TAB of VT (verticale tabsprong). Let op: De toets Enter/Return van het hoofdtoetsenbord is CR.
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:
Copyright (c) 2000, 2005 IBM Corporation en anderen.
Alle rechten voorbehouden. Dit programma en het begeleidende materiaal zijn beschikbaar gesteld onder de voorwaarden van de Eclipse Public License v1.0 die bij deze distributie is geleverd en beschikbaar is op http://www.eclipse.org/legal/epl-v10.html.