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.
categoryId
i stedet for. den entydige id på kategorien for denne kommando. Hvis kommandoen ikke angiver en kategori, vil den stadig blive vist i hele brugergrænsefladen sammen med andre specifikt kategoriserede kommandoer.
Fra: 3.0
standardbehandleren for denne kommando (se udvidelsespunktet org.eclipse.ui.bindings). 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 opretter en IExecutableExtension
, kan du bruge elementet defaultHandler
i stedet for.
Fra: 3.1
id for commandParameterType
, der angiver den type værdier, der returneres af denne kommando. Ved at angivereturnTypeId
kan klienter udføre kommandoen for at tilknytte den værdi, der returneres med en Java-type, og for at konvertere en værdi til en String-form, der kan gemmes og/eller overføres til en anden kommando, der accepterer parametre af samme type.
Fra: 3.2
id'en på den hjælpekontekst, der har relation til denne kommando generelt. Behandlere kan tilsidesætte denne kontekst-id for at stille hjælp til rådighed, der er mere specifik for deres bestemte funktionsmåde.
Fra: 3.2
<!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
org.eclipse.core.commands.IParameterValues
. Hvis klassen ikke angives, skal du angive det mere detaljerede values
-element. Se org.eclipse.core.runtime.IExecutableExtension
.<!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
java.lang.Object
imidlertid som parametertype.org.eclipse.core.commands.AbstractParameterValueConverter
.
Konverteringsfunktionen skal producere og forbruge objekter af den type, der er angivet i attributten type
. Hvis denne klasse ikke er angivet, er funktionen til at konvertere mellem strenge og objektværdier for denne parametertype ikke tilgængelig. getValueConverter()
på klassen ParameterType
returnerer null
).<!ELEMENT values (parameter*)>
<!ATTLIST values
class CDATA #REQUIRED>
Den mere detaljerede version af attributten values
på commandParameter
.
Fra: 3.1
org.eclipse.core.commands.IParameterValues
. Hvis klassen ikke angives, skal du angive det mere detaljerede values
-element. Se org.eclipse.core.runtime.IExecutableExtension
.<!ELEMENT parameter EMPTY>
<!ATTLIST parameter
name CDATA #REQUIRED
value CDATA #REQUIRED>
En mulig værdi for en parameter.
Fra: 3.1
IExecutableExtension
.IExecutableExtension
.<!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
org.eclipse.core.commands.IHandler
.<!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
org.eclipse.core.commands.State
. Se API-oplysningerne.
en entydig id for denne tilstand. Den anvendes til vedholdende tilstande mellem sessioner, hvis tilstanden er en forekomst af org.eclipse.jface.commands.PersistentState
). Visse almindelige id'er (se org.eclipse.jface.menus.IMenuStateIds
) forstås, når kommandoen gengives på menuer eller værktøjslinjer.
Id'en behøver kun at være entydig i den kommando, der definerer tilstanden.
<!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
org.eclipse.core.commands.State
. Se API-oplysningerne. <!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.
<!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.
<!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.
<!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
.
id
) på elementetkeyConfiguration, som det ønskes skal blive aktivt. id
) på elementet keyConfiguration, som ønskes aktivt initialt. <!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.
java.util.Locale
.platform
er det sæt mulige værdier, der returneres af org.eclipse.swt.SWT.getPlatform()
.schemeId
på elementet key
i det nye udvidelsespunkt "org.eclipse.ui.bindings". den tastsekvens, der skal knyttes til kommandoen. Tastsekvenser består af et eller flere tasttryk, hvor et tasttryk består af en tast på tastaturet, der eventuelt trykkes i kombination med en eller flere af følgende ændringstaster: Ctrl, Alt, Skift og Kommando. Tasttryk er adskilt af mellemrum, og ændringstaster er adskilt af '+'-tegn.
Ændringstasterne kan også udtrykkes på en platformsuafhængig måde. På MacOS X bruges "Kommando" f.eks. næsten altid i stedet for "Ctrl". Derfor leverer vi "M1", som tilknyttes vha. mapping til enten "Ctrl" eller "Kommando", afhængig af platformen. Tilsvarende er "M2" "Skift", "M3" er "Alt", og "M4" er "Ctrl" (MacOS X). Hvis du tilføjer flere platforme, kan du være forvisset om, at disse aliaser tilknyttes til gode platformstandarder vha. mapping.
Syntaksen for denne streng er defineret i org.eclipse.ui.internal.keys
. Der skelnes ikke mellem store og små bogstaver i strengen, men stilistisk foretrækkes store bogstaver. Hvis tasten er et bogstav, skal du blot tilføje bogstavet. Hvis tasten er en specialtast, dvs. ikke-ASCII, skal du bruge én af følgende: 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, der ikke kan udskrives, skal du bruge én af følgende: BS, CR, DEL, ESC, FF, LF, NUL, SPACE, TAB eller VT. Bemærk, at hovedtasten for Enter/Retur er CR.
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:
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