Bindinger

org.eclipse.ui.bindings

3.1

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.



<!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 mellem et tastaturinput og udløsningen af en kommando.



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