Bindinger

org.eclipse.ui.bindings

3.1

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.



<!ELEMENT key (parameter*)>

<!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.



<!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.