Utvidelsespunktet org.eclipse.ui.bindings
blir brukt til å deklarere bindinger og skjemaer. Skjemaer
er sett med en eller flere bindinger. En binding er en tilordning mellom en bestemt gruppe betingelser, noe
brukerinndata og en utløserkommando.
Alle bindinger krever en eller annen type utløser, en kontekst de er aktive i, og et skjema de finnes i. Hvis du
ikke er sikker på hvilken kontekst du skal velge, kan du bare la den være blank. Som standard blir
konteksten "org.eclipse.ui.contexts.window"
brukt. Denne konteksten betyr at bindingen kan brukes i
alle Eclipse-hovedvinduer. Når konteksten er aktiv, er bindingen også aktiv. Bindinger fra underordnede
kontekster overstyrer bindinger fra overordnede kontekster. Du finner mer informasjon om kontekster under
utvidelsespunktet org.eclipse.ui.contexts
.
Hvis en binding ikke definerer en kommando-ID, er det et slettemerke. Det betyr at eventuelle bindinger med samme utløser i den samme konteksten blir avbrutt hvis alle betingelsene er oppfylt. Denne mekanismen kan for eksempel brukes til å endre en binding på en bestemt plattform.
En type binding er en key
-binding (det vil si en direktetast). Hvis du for eksempel binder
Ctrl+C
til Kopier
, anses det som en key
-binding. Utløseren for en tastbinding
er en sekvens med tasttrykk.
Et skjema er en gruppe med disse bindingene i et sett som sluttbrukeren kan velge. Brukere kan for eksempel ønske å bruke standardskjemaet, men det kan også hende at de ønsker et skjema med Emacs-stil eller et skjema med Brief-stil.
<!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>
Et skjema er en gruppe bindinger som en sluttbruker kan velge å bruke.
Det er mulig for skjemaer å arve bindinger fra et overordnet skjema. Hensikten med dette er å gjøre det enklere for utviklere av plugin-moduler å opprette bindingssett som kan tilpasses. En aktiv binding som er definert i et underordnet skjema, vil alltid overstyre en aktiv binding i et overordnet skjema, hvis de har samme utløser. Denne teknikken blir brukt for å oppgi Emacs-skjemaet på arbeidsbenken.
<!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 mellom tastaturinndata og utløsningen av en kommando.
Tastsekvensen for denne bindingen. Denne tastsekvensen skal bestå av en eller flere tasttrykk. Tasttrykk skilles av
mellomrom. Tasttrykk består av en eller flere taster som holdes nede samtidig. Dette kan være null eller flere
kombinasjonstaster, og en annen tast. Tastene skilles av tegnet +
.
Godtatte kombinasjonstaster er M1
, M2
, M3
,
M4
, ALT
, KOMMANDO
, CTRL
og SKIFT
. "M"-kombinasjonstastene
er en plattformuavhengig måte å fremstille taster på, og disse er vanligvis å foretrekke. M1
er
KOMMANDO
-tasten på MacOS X, og CTRL
-tasten på de fleste andre plattformer. M2
er SKIFT
-tasten. M3
er Tilvalg
-tasten på MacOS X, og
ALT
-tasten
på de fleste andre plattformer. M4
er CTRL
-tasten på MacOS X, og er udefinert på andre
plattformer.
Den faktiske tasten er generelt bare oppgitt som ASCII-tegnet, med store bokstaver. For eksempel er
F
eller ,
eksempler på slike taster. Men det er noen spesialtaster: taster som
ikke har ASCII-representasjon som kan skrives ut. Dette er en liste over gjeldende spesialtaster:
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 forstår også noen alternative navn for noen vanlige spesialtaster. Vi godtar for eksempel både ESC
og ESCAPE
, og CR
, ENTER
og RETURN
betyr det samme.
Vi anbefaler på det sterkeste at du bruker en kort tastsekvens. Du burde ikke trenge mer enn en eller to. Bruk kontekster for å gi tastsekvenser forskjellig betydning i forskjellige deler av applikasjonen. Du bør uansett ikke bruke tastsekvenser som inneholder mer enn fire tasttrykk.
org.eclipse.ui.contexts
. Hvis den ikke er oppgitt, brukes org.eclipse.ui.contexts.window
som standard.IDen til kommandoen som skal utføres når denne bindingen utløses.
Hvis det ikke er oppgitt en kommando-ID, er dette et slettemerke. Det betyr at en binding i den samme konteksten med den samme sekvensen, plattformen og språkmiljøet blir inaktiv når denne bindingen blir aktiv. Hvis plattformen eller språkmiljøet i en sletting ikke er oppgitt, samsvarer det med en hvilken som helst plattform eller et hvilket som helst språkmiljø.
SWT.getPlatform()
. Disse strengene blir for eksempel ansett som gyldige:
win32
, gtk
, motif
, carbon
og photon
.Locale.toString()
. For
eksempel blir både "en"
og "en_CA"
forstått.<!ELEMENT parameter EMPTY>
<!ATTLIST parameter
id CDATA #IMPLIED
value CDATA #IMPLIED>
Et parameternavn og en verdi som skal sendes til kommandoen når den utføres. Dette gjør at kommandoen kan kvalifiseres. For eksempel kan en "Vis visning"-kommando godta visnings-IDen som en parameter.
<extension point=
"org.eclipse.ui.bindings"
>
<key sequence=
"M2+F5"
commandId=
"commandId"
schemeId=
"default"
contextId=
"windows"
/>
<scheme name=
"Default"
description=
"Default shortcuts for Eclipse"
id=
"default"
/>
</extension>
Det er ingen felles API for definering av bindinger. For å prøve å gi brukerne mest mulig stabilitet, blir
bindingene bare definert via utvidelsespunktene. Hvis du har en RCP-applikasjon, skal du kunne overstyre
denne virkemåten i WorkbenchAdvisor
.
Du må ha definert en kommando for at bindingene skal virke. Kommandoen må ha en aktiv behandler for at bindingen skal virke. Behandlerne kan registreres programmatisk. Se utvidelsespunktet 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