Udvidelsespunktet org.eclipse.ui.bindings
bruges til at erklære bindinger og skemaer. Skemaer er sæt, bestående af en eller flere bindinger. En binding er en tilknytning vha. mapping mellem en bestemt gruppe betingelser, input fra brugeren og en udløst kommando.
Alle bindinger kræver en eller anden type binding, en kontekst, som de er aktive i, og et skema, som de findes i. Hvis du er i tvivl om, hvilken kontekst du skal vælge, kan du undlade at vælge én. Så vælges standardkonteksten "org.eclipse.ui.contexts.window"
. Denne kontekst betyder, at bindingen gælder i alle hovedvinduer i Eclipse. Når konteksten bliver aktiv, bliver bindingen også aktiv. Bindinger fra underordnede kontekster tilsidesætter bindinger fra overordnede kontekster. Der er flere oplysninger om kontekster under udvidelsespunktet org.eclipse.ui.contexts
.
Hvis en binding ikke definerer en kommando-id, er det en sletningsmarkering. Det betyder, at hvis alle betingelser er opfyldt, vil den annullere alle bindinger med samme udløser i samme kontekst. Denne mekanisme kan f.eks. bruges til at ændre en binding på en bestemt platform.
En type binding er en tastbinding
(dvs. en tastaturgenvej). Binding af Ctrl+C
til Kopiér
betragtes f.eks. som en tastbinding
. Udløseren for en tastbinding er en sekvens af tasttryk.
Et skema er en gruppe af disse bindinger i et sæt, som slutbrugeren kan vælge. En bruger kan f.eks. vælge at bruge standardskemaet, men han eller hun kan også vælge et Emacs-skema eller et Brief-skema.
<!ELEMENT extension (scheme* , key*)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
navn CDATA #IMPLIED>
<!ELEMENT scheme EMPTY>
<!ATTLIST scheme
id CDATA #REQUIRED
name CDATA #REQUIRED
description CDATA #IMPLIED
parentId CDATA #IMPLIED>
Et skema er en gruppering af bindinger, som en slutbruger kan vælge at bruge.
Skemaer kan overtage bindinger fra et overordnet skema. Herved bliver det nemmere for pluginudviklere at oprette tilpassede bindingssæt. En aktiv binding, defineret i et underordnet skema, tilsidesætter altid en aktiv binding i et overordnet skema, hvis de har samme udløser. Denne teknik er anvendt til at levere Emacs-skemaet på arbejdsbænken.
<!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 binding mellem et tastaturinput og udløsningen af en kommando.
Tastsekvensen for denne binding. Denne tastsekvens skal bestå af et eller flere tasttryk. Tasttryk er adskilt af mellemrum. Tasttryk består af en eller flere taster, der holdes nede samtidig. Der skal være nul eller flere ændringstaster og én anden tast. Tasterne er adskilt af tegnet +
.
Genkendte ændringstaster er M1
, M2
, M3
, M4
, ALT
, KOMMANDO
, CTRL
og SKIFT
. "M"-ændringstasterne er en platformsuafhængig metode til at repræsentere taster, og disse foretrækkes normalt. M1
er KOMMANDO
-tasten på MacOS X og CTRL
-tasten på de fleste andre platforme. M2
er SKIFT
-tasten. M3
er Alternativtasten
på MacOS X og ALT
-tasten på de fleste andre platforme. M4
er CTRL
-tasten på MacOS X og er ikke defineret på andre platforme.
Den faktiske tast angives normalt blot som ASCII-tegnet med store bogstaver. Så F
eller ,
er eksempler på sådanne taster. Men der er nogle specialtaster, dvs. tater der ikke har nogen ASCII-repræsentation. Her er en liste over de aktuelle specialtaster: ARROW_DOWN
, ARROW_LEFT
, ARROW_RIGHT
, ARROW_UP
, 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
, 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
, SCROLL_LOCK
, SPACE
, TAB
og VT
.
Vi kan også forstå nogle alternative navne på nogle almindelige specialtaster. Eksempelvis accepterer vi både ESC
og ESCAPE
, og CR
, ENTER
og RETURN
betyder alle det samme.
Det anbefales kraftigt, at du holder tastsekvenserne korte. Du bør ikke anvende mere end én eller to. Brug kontekster til at give tastsekvenser forskellige betydninger i forskellige dele af programmet. Du bør ikke have nogen tastsekvens, der indeholder mere end fire tasttryk.
org.eclipse.ui.contexts
. Hvis dette ikke er angivet, anvendes standardværdien org.eclipse.ui.contexts.window
.Id'en til den kommando, som skal udføres, når bindingen udløses.
Hvis der ikke angives en id, er dette sletningsmarkeringen. Det betyder, at en binding i samme kontekst med samme sekvens, platform og sprogkonvention bliver inaktiv, når denne binding bliver aktiv. Hvis platform eller sprogkonvention på en sletning ikke er angivet, matcher den enhver platform eller sprogkonvention.
SWT.getPlatform()
. Følgende strenge anses f.eks. som gyldige: win32
, gtk
, motif
, carbon
og photon
.Locale.toString()
. Eksempelvis forstås både "en"
og "en_CA"
. <!ELEMENT parameter EMPTY>
<!ATTLIST parameter
id CDATA #IMPLIED
value CDATA #IMPLIED>
Parameternavn og -værdi, der skal videregives til kommandoen, når den udføres. Herved bliver kommandoen kvalificeret på en eller anden måde. Kommandoen "Vis oversigt" kan f.eks. acceptere oversigts-id'en som en parameter.
<extension point=
"org.eclipse.ui.bindings"
>
<key sequence=
"M2+F5"
commandId=
"commandId"
schemeId=
"default"
contextId=
"windows"
/>
<scheme name=
"Standard"
description=
"Standardgenveje til Eclipse"
id=
"default"
/>
</extension>
Der er intet offentligt API til definition af bindinger. For at sikre stabilitet over for brugeren defineres bindinger kun gennem udvidelsespunkter. Hvis du arbejder i et RCP-program, skal du kunne tilsidesætte denne funktionsmåde i WorkbenchAdvisor
.
Hvis bindinger skal fungere korrekt, skal du have defineret en kommando. For at bindingen skal virke korrekt, skal kommandoen have en aktiv behandler. Behandlere kan registreres vha. programmet. Se under udvidelsespunktet org.eclipse.ui.handlers.
Copyright (c) 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