Utökningspunkten org.eclipse.ui.bindings
används för att deklarera bindningar och scheman. Scheman är uppsättningar med en eller flera bindningar. En bindning är en avbildning mellan en viss grupp villkor, användardata och ett utlöst kommando.
För alla bindningar krävs en utlösare av något slag, ett sammanhang där de är aktiva och ett schema där de existerar. Om du är osäker på vilket sammanhang du ska välja lämnar du det tomt. Standard är då sammanhanget "org.eclipse.ui.contexts.window"
. Det sammanhanget innebär att bindningen tillämpas i Eclipse huvudfönster. När sammanhanget blir aktivt blir även bindningen aktiv. Bindningar från underordnade sammanhang ersätter bindningar från överordnade sammanhang. Mer information om sammanhang finns i avsnittet om utökningspunkten org.eclipse.ui.contexts
.
Om en kommandoidentifierare inte definieras i en bindning är det en borttagningsmarkering. Det innebär att om alla villkor uppfylls avbryts alla bindningar med samma utlösare i samma sammanhang. Den här mekanismen kan till exempel användas till att ändra en bindning på en viss plattform.
En typ av bindning är en key
-bindning (dvs kortkommandon). Exempelvis betraktas bindning av Ctrl+C
till Copy
som en key
-bindning. Utlösaren för en key-bindning är en sekvens av tangenttryckningar.
Ett schema är en grupp av sådana bindningar till en uppsättning som slutanvändaren kan välja. Exempelvis kan en användare vilja använda standardschemat men även vilja använda ett schema av Emacs-typ eller ett schema av Brief-typ.
<!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>
Ett schema är en gruppering av bindningar som en slutanvändare kan välja att använda.
Det är möjligt för scheman att överta bindningar från ett överordnat schema. Avsikten är att göra det enklare för utvecklare av insticksprogram att skapa anpassade bindningsuppsättningar. En aktiv bindning som är definierad i ett underordnat schema ersätter alltid en aktiv bindning i ett överordnat schema, om de har samma utlösare. Den här tekniken används för att tillhandahålla Emacs-schemat i arbetsmiljön.
<!ATTLIST key
sequence CDATA #REQUIRED
schemeId CDATA #REQUIRED
contextId CDATA "org.eclipse.ui.contexts.window"
commandId CDATA #IMPLIED
platform CDATA #IMPLIED
locale CDATA #IMPLIED>
En bindning mellan vissa data angivna från tangentbordet och utlösningen av ett kommando.
Tangentbordssekvensen för bindningen. Den här tangentsekvensen ska bestå av en eller flera tangenttryckningar. Tangenttryckningar avgränsas med blanktecken. Tangenttryckningar består av en eller flera tangenter som hålls ned samtidigt. Det skall vara noll eller fler modifieringstangenter och en annan tangent. Tangenterna avgränsas med tecknet +
.
Modifieringstangenterna är M1
, M2
, M3
, M4
, ALT
, KOMMANDO
, CTRL
och SKIFT
. "M"-modifieringstangenter är ett plattformsoberoende sätt att representera tangenter och det föredras i allmänhet. M1
är tangenten KOMMANDO
i MacOS X och tangenten CTRL
på de flesta andra plattformar. M2
är tangenten SKIFT
. M3
är tangenten Alternativ
i MacOS X och tangenten ALT
på de flesta andra plattformar. M4
är tangenten CTRL
i MacOS X och odefinierad på andra plattformar.
Den verkliga tangenten anges i allmänhet helt enkelt som ASCII-tecknet med versal. Så till exempel F
eller ,
är exempel på sådana tangenter. Det finn dock vissa specialtangenter, tangenter som inte har något utskrivbar ASCII-representation. Här följer en lista med de aktuella specialtangenterna: PIL_NED
, PIL_VÄNSTER
, PIL_HÖGER
, PIL_UPP
, 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
, NUMSATS_0
, NUMSATS_1
, NUMSATS_2
, NUMSATS_3
, NUMSATS_4
, NUMSATS_5
, NUMSATS_6
, NUMSATS_7
, NUMSATS_8
, NUMSATS_9
, NUMSATS_ADDERA
, NUMSATS_DECIMAL
, NUMSATS_DIVIDERA
, NUMSATS_ENTER
, NUMSATS_LIKAMED
, NUMSATS_MULTIPLICERA
, NUMSATS_SUBTRAHERA
, PAGE_UP
, PAGE_DOWN
, PAUSE
, PRINT_SCREEN
, SCROLL_LOCK
, Blanktecken
, TABB
OCH VT
.
Vi förstår även vissa alternativa namn för vissa vanliga specialtangenter. Till exempel accepterar vi både ESC
och ESCAPE
och CR
, ENTER
och RETURN
är alla samma.
Du bör också hålla tangentsekvenserna korta. En eller två är vad du som mest bör behöva. Använd sammanhang för att ge tangentsekvenser olika betydelser i olika delar av tillämpningen. Under inga omständigheter bör du använda tangentsekvenser som innehåller fler än fyra tangenttryckningar.
org.eclipse.ui.contexts
. Om denna inte anges är standardalternativet org.eclipse.ui.contexts.window
.Identifieraren för det kommando som ska köras när bindningen utlöses.
Om ingen kommandoidentifierare anges är detta en borttagningsmarkering. Det innebär att en eventuella bindning i samma sammanhang med samma sekvens, plattform och språkmiljö avaktiveras när bindningen blir aktiv. Om plattformen eller språkmiljön vid en borttagning inte anges matchas den mot plattform eller språkmiljö.
SWT.getPlatform()
. Följande strängar betraktas t.ex. som giltiga: win32
, gtk
, motif
, carbon
och photon
.Locale.toString()
. Exempelvis förstås både "en"
och "en_CA"
.<!ELEMENT parameter EMPTY>
<!ATTLIST parameter
id CDATA #IMPLIED
value CDATA #IMPLIED>
Ett parameternamn och ett värde som ska skickas till kommandot när det körs. Det gör det möjligt för kommandot att kvalificeras på något sätt. Exempelvis kan ett "visa vy"-kommandot godta vyns ID som en parameter.
<extension point=
"org.eclipse.ui.bindings"
>
<key sequence=
"M2+F5"
commandId=
"commandId"
schemeId=
"default"
contextId=
"windows"
/>
<scheme name=
"Standard"
description=
"Standardgenvägar för Eclipse"
id=
"default"
/>
</extension>
Det finns inga allmänna API för att definiera bindningar. För att försöka uppnå stabilitet för användaren definieras bindningar endast via utökningspunkterna. Om du är en RCP-tillämpning ska du kunna ersätta det här funktionssättet i WorkbenchAdvisor
.
För att bindningar ska fungera måste du ha definierat ett kommando. För att bindningen ska fungera måste kommandot ha en aktiv hanterare. Hanterare kan registreras programmatiskt. Mer information finns i avsnittet om utökningspunkten org.eclipse.ui.handlers.
Copyright (c) 2005 IBM Corporation and others.
All rights reserved.
Detta program och medföljande material tillhandahålls under villkoren för Eclipse Public License v1.0 som medföljer denna distribution och finns tillgänglig på
http://www.eclipse.org/legal/epl-v10.html