Het extensiepunt org.eclipse.ui.bindings
wordt gebruikt voor het declareren van koppelingen (bindings) en schema's. Schema's zijn verzamelingen van een of meer koppelingen. Een koppeling is een toewijzing tussen een bepaalde groep voorwaarden, een bepaalde gebruikersinvoer en een opdracht die wordt geactiveerd.
Alle koppelingen hebben een bepaalde trigger, een context waarin zij actief zijn en een schema waarbinnen zij bestaan, nodig. Als u niet zeker weet welke context u moet kiezen, laat u deze leeg. De standaardcontext is "org.eclipse.ui.contexts.window"
. De selectie van deze context betekent dat de koppeling van toepassing is in elk hoofdvenster van Eclipse. Wanneer de context actief wordt, wordt ook de koppeling actief. Koppelingen van onderliggende contexten vervangen de koppelingen van de bovenliggende contexten. Zie het extensiepunt org.eclipse.ui.contexts
voor meer informatie over context.
Als een koppeling geen opdracht-ID definieert, gaat het om een merkteken voor wissen. Dit betekent dat, wanneer wordt voldaan aan de voorwaarden, de koppelingen met dezelfde trigger in dezelfde context worden geannuleerd. Dit mechanisme kan bijvoorbeeld worden gebruikt voor het wijzigen van een koppeling op een bepaald platform.
Een van de bindingstypen is een toets
koppeling (i.e. een sneltoetscombinatie). Bijvoorbeeld het koppelen van Ctrl+C
aan Kopiëren
wordt beschouwd als een toets
koppeling. De trigger voor een toetskoppeling is een reeks toetsaanslagen.
Een schema is een groep van deze koppelingen in een set die kan worden geselecteerd door de eindgebruiker. Een gebruiker wil bijvoorbeeld niet alleen het standaardschema gebruiken, maar ook een schema in de Emacs- of de Brief-stijl.
<!ELEMENT extension (scheme* , key*)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED>
<!ELEMENT scheme EMPTY>
<!ATTLIST scheme
id CDATA #REQUIRED
name CDATA #REQUIRED
description CDATA #IMPLIED
parentId CDATA #IMPLIED>
Een schema is een groep koppelingen waarvoor geldt dat de eindgebruiker kan kiezen deze te gebruiken.
De schema's kunnen koppelingen overnemen van een bovenliggend schema. Hiermee wordt het gemakkelijker voor pluginontwikkelaars om aangepaste koppelingensets te maken. Een actieve koppeling die gedefinieerd is in een afgeleid schema, vervangt altijd de koppeling in het bovenliggende schema als voor beide dezelfde trigger is gedefinieerd. Deze techniek wordt gebruikt om het Emacs-schema te voorzien in de workbench.
<!ATTLIST key
sequence CDATA #REQUIRED
schemeId CDATA #REQUIRED
contextId CDATA "org.eclipse.ui.contexts.window"
commandId CDATA #IMPLIED
platform CDATA #IMPLIED
locale CDATA #IMPLIED>
De koppeling tussen een bepaalde invoer via het toetsenbord en het initiëren van een opdracht.
de toetsenreeks van deze koppeling. Deze toetsencombinatie bestaat uit een of meer toetsaanslagen. Deze aanslagen worden gescheiden door spaties. Toetsaanslagen bestaan uit een of meer toetsen die op hetzelfde moment worden ingedrukt. Deze aanslagen worden gevormd door nul of meer combinatietoetsen en één andere toets. De toetsen worden van elkaar gescheiden door het +
-teken.
De erkende combinatietoetsen zijn M1
, M2
, M3
, M4
, ALT
, COMMAND
, CTRL
en SHIFT
. De "M"-combinatietoetsen zijn platform-onafhankelijke toetsen en deze genieten de voorkeur. M1
is de COMMAND
-toets op MacOS X en is de CTRL
-toets op de meeste andere platforms. M2
is de SHIFT
-toets. M3
is de Option
-toets op MacOS X en het is de ALT
-toets op de meeste andere platforms. M4
is de CTRL
-toets op MacOS X en is niet gedefinieerd op andere platforms.
De werkelijke toets wordt meestal eenvoudig als ASCII-tekens in hoofdletters opgegeven. Bijvoorbeeld F
of ,
zijn voorbeelden van deze toetsen. Er zijn echter een aantal speciale toetsen; dit zijn toetsen die geen afdrukbare ASCII-waarde hebben. Een lijst met de huidige speciale toetsen: PIJL_OMLAAG
, PIJL_NAAR_LINKS
, PIJL_NAAR_RECHTS
, PIJL_OMHOOG
, BREAK
, BS
, CAPS_LOCK
, CR
, DEL
, END
, ESC
, F1
, F2
, F3
, F4
, F5
, F6
, F7
, F8
, F9
, F10
, F11
, F12
, F13
, F14
, F15
, FF
, HOME
, INSERT
, LF
, NUL
, NUM_LOCK
, NUM_0
, NUMERIEKTOETSENBLOK_1
, NUMERIEKTOETSENBLOK_2
, NUMERIEKTOETSENBLOK_3
, NUMERIEKTOETSENBLOK_4
, NUMERIEKTOETSENBLOK_5
, NUMERIEKTOETSENBLOK_6
, NUMERIEKTOETSENBLOK_7
, NUMERIEKTOETSENBLOK_8
, NUMERIEKTOETSENBLOK_9
, NUMERIEKTOETSENBLOK_OPTELLEN
, NUMERIEKTOETSENBLOK_DECIMAALTEKEN
, NUMERIEKTOETSENBLOK_DEELTEKEN
, NUMERIEKTOETSENBLOK_ENTER
, NUMERIEKTOETSENBLOK_GELIJKTEKEN
, NUMERIEKTOETSENBLOK_VERMENIGVULDIGINGSTEKEN
, NUMERIEKTOETSENBLOK_TEKENVOORAFTREKKEN
, PAGE_UP
, PAGE_DOWN
, PAUSE
, PRINT_SCREEN
, SCROLL_LOCK
, SPATIE
, TAB
en VERTICALETABSPRONG
.
Ook zijn er een aantal alternatieve namen voor de veelgebruikte speciale toetsen. Bijvoorbeeld ESC
en ESCAPE
of CR
, ENTER
en RETURN
zijn verschillende benamingen voor dezelfde toetsen.
Het is verstandig gebruik te maken van korte toetsencombinaties. Een of twee aanslagen is het maximum dat u nodig hebt. Gebruik contexten om aan de toetsencombinaties verschillende betekenissen te geven in de verschillende delen van uw toepassing. Het is verstandig zeker niet meer dan vier aanslagen te gebruiken in een toetsencombinatie.
org.eclipse.ui.contexts
voor meer informatie. Als dit ID niet is opgegeven, wordt standaard org.eclipse.ui.contexts.window
gebruikt.het ID van de opdracht die moet worden uitgevoerd wanneer deze koppeling wordt gestart.
Als er geen opdracht-ID is opgegeven, is dit een merkteken voor wissen. Dit betekent dat een koppeling in dezelfde context met dezelfde reeks, hetzelfde platform en dezelfde locale, inactief wordt als deze koppeling actief wordt. Als het platform of een locale voor een actie wissen niet is opgegeven, komt dit overeen met elk platform of elke locale.
SWT.getPlatform()
. De volgende tekenreeksen zijn bijvoorbeeld geldig: win32
, gtk
, motif
, carbon
en photon
. Locale.toString()
. Bijvoorbeeld "en"
of "en_CA"
zijn beide correct. <!ELEMENT parameter EMPTY>
<!ATTLIST parameter
id CDATA #IMPLIED
value CDATA #IMPLIED>
Een parameternaam en -waarde moeten bij de verwerking aan de opdracht worden doorgegeven. Op deze manier wordt de opdracht gekwalificeerd. Bijvoorbeeld de opdracht "View afbeelden" kan het view-id als parameter accepteren.
<extension point=
"org.eclipse.ui.bindings"
>
<key sequence=
"M2+F5"
commandId=
"commandId"
schemeId=
"default"
contextId=
"windows"
/>
<scheme name=
"Standaard"
description=
"Standaardsnelkoppelingen in Eclipse"
id=
"default"
/>
</extension>
Er is geen openbare API voor het definiëren van koppelingen. Ten behoeve van de stabiliteit voor de gebruiker worden de koppelingen alleen gedefinieerd door middel van extensiepunten. Als u een RCP-toepassing gebruikt, kunt u dit gedrag in de WorkbenchAdvisor
uitschakelen.
Om de bindingen te laten functioneren moet u een opdracht definiëren. De binding werkt alleen als de opdracht een actief afhandelingsroutine heeft. De afhandelingsroutines kunnen programma-matig worden geregistreerd; zie het extensiepunt org.eclipse.ui.handlers.
Copyright (c) 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.