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.
categoryId
.Den unike IDen for kategorien til denne kommandoen. Selv om denne kommandoen ikke oppgir en kategori, blir den likevel vist i brukergrensesnittet, sammen med andre kommandoer som er spesifikt kategorisert.
Siden: 3.0
Standardbehandleren for denne kommandoen (se utvidelsespunktet org.eclipse.ui.bindings). 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 oppretter en
IExecutableExtension
, kan du i stedet bruke defaultHandler
-elementet.
Siden: 3.1
IDen til en commandParameterType
angir typen verdi som returneres av denne kommandoen. Hvis du oppgir en returnTypeId
, kan klienter som utfører kommandoen, knytte verdien som returneres fra en Java-type og konvertereverdien til en strengform som kan lagres og/eller sendes til en annen kommando som godtar parametere av samme type.
Siden: 3.2
IDen til hjelpeteksten som omhandler denne kommandoen generelt. Behandlere kan overstyre denne kontekst-IDen og gi hjelp som er mer spesifikk for den bestemte virkemåten.
Siden: 3.2
<!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
org.eclipse.core.commands.IParameterValues
. Hvis klassen ikke spesifiseres, må du spesifisere det
mer detaljerte values
-elementet. Se org.eclipse.core.runtime.IExecutableExtension
.<!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
java.lang.Object
brukt som parametertype.org.eclipse.core.commands.AbstractParameterValueConverter
. Konverteringsprogrammet bør produsere og bruke objekter av typen angitt i type
-attributtet. Hvis denne klassen ikke spesifiseres, vil denne muligheten for å konvertere mellom streng- og objektverdier for denne parametertypen ikke være tilgjengelig (getValueConverter()
på klassen ParameterType
vil returnere null
).<!ELEMENT values (parameter*)>
<!ATTLIST values
class CDATA #REQUIRED>
Den mer detaljerte versjonen av values
-attributtet i commandParameter
.
Siden: 3.1
org.eclipse.core.commands.IParameterValues
. Hvis klassen ikke spesifiseres, må du spesifisere det
mer detaljerte values
-elementet. Se org.eclipse.core.runtime.IExecutableExtension
.<!ELEMENT parameter EMPTY>
<!ATTLIST parameter
name CDATA #REQUIRED
value CDATA #REQUIRED>
En mulig verdi for en parameter.
Siden: 3.1
IExecutableExtension
.IExecutableExtension
.<!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
org.eclipse.core.commands.IHandler
.<!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
org.eclipse.core.commands.State
. Se API-informasjonen.
En unik ID for denne statusen. Denne brukes til å fortsette statusen mellom sesjoner (hvis statusen er en forekomst av org.eclipse.jface.commands.PersistentState
). Visse felles IDer (se org.eclipse.jface.menus.IMenuStateIds
) forstås når kommandoen konverteres i menyer eller verktøylinjer. IDen må bare være unik innen kommandoen som definerer statusen.
<!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
org.eclipse.core.commands.State
. Se API-informasjonen. <!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.
<!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.
<!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".
<!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
.
id
-attributtet) til keyConfiguration-elementet som du vil at først skal være aktiv.
id
-attributtet) til keyConfiguration-elementet som du vil at først skal være aktiv.
<!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.
java.util.Locale
.platform
-attributtet er settet med mulige verdier som
returneres av org.eclipse.swt.SWT.getPlatform()
.schemeId
-attributtet i key
-elementet i det nye
"org.eclipse.ui.bindings"-utvidelsespunktet.Tastsekvensen som skal tildeles til kommandoen. Tastsekvenser består av et eller flere tasttrykk, der et tasttrykk består av en tast på tastaturet, som eventuelt trykkes sammen med en eller flere av disse kombinasjonstastene: Ctrl, Alt, Skift og Kommando. Tasttrykk skilles av mellomrom, og kombinasjonstaster skilles av tegnet '+'.
Kombinasjonstastene kan også uttrykkes på en plattformuavhengig måte. På MacOS X blir for eksempel "Kommando" nesten alltid brukt i stedet for "Ctrl". Vi bruker derfor "M1", som vil tilordne enten "Ctrl" eller "Kommand", alt etter hva som passer. Og "M2" er "Skift", "M3" er "Alt" og "M4" er "Ctrl" (MacOS X). Hvis du legger til flere plattformer, kan du stole på at disse aliasene blir tilordnet til gode plattformstandarder.
Syntaksen for denne strengen er definert i org.eclipse.ui.internal.keys
. Strengen skiller ikke
mellom store og små bokstaver, men bare store bokstaver foretrekkes rent stilistisk. Hvis tasten er en bokstav,
tilføyer du bare bokstaven. Hvis tasten er en spesialtast (det vil si ikke-ASCII), bruker du en av disse:
ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, ARROW_UP, 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, NUMPAD_DECIMAL, NUMPAD_DIVIDE, NUMPAD_ENTER, NUMPAD_EQUAL,
NUMPAD_MULTIPLY, NUMPAD_SUBTRACT, PAGE_UP, PAGE_DOWN, PAUSE, PRINT_SCREEN eller SCROLL_LOCK. Hvis tasten er en
ASCII-tast som ikke kan skrives ut, bruker du en av disse: BS, CR, DEL, ESC, FF, LF, NUL, SPACE, TAB eller VT. Legg merke til av tastaturets Enter-hovedtast er CR.
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:
Copyright (c) 2000, 2005 IBM Corporation and others.
All rights reserved. This program and the accompanying materials are made
available under the terms of the Eclipse Public License v1.0 which accompanies
this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html