Skjemaer

Skjemaer brukes til å betegne en vanlig stil eller et vanlig tema for bindinger. For eksempel har arbeidsbenken et "standardskjema" og et "Emacs-skjema". Bare ett skjema kan være aktivt om gangen.  Sluttbrukere styrer hvilket skjema som er aktivt, via dialogboksen Generelt > Taster.

Sett fra et implementeringsperspektiv er skjemaer helt enkelt navngitte grupper av bindinger. Et skjema kan ikke gjøre noe på egen hånd med mindre det er tilknyttet bindinger.  

La oss gå tilbake til arbeidsbenkkodetypen for org.eclipse.ui.bindings og finne bindingsdefinisjonene og hvordan et skjema tilknyttes en binding.

...
<key
       sequence="Ctrl+S"
      commandId="org.eclipse.ui.file.save"
       schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
</key>
...
<key
       sequence="Ctrl+X Ctrl+S"
      commandId="org.eclipse.ui.file.save"
       schemeId="org.eclipse.ui.emacsAcceleratorConfiguration">
</key>
...

Det er definert to ulike nøkkelbindinger for kommandoen "org.eclipse.ui.file.save". Merk at de har ulike schemeId definert for seg.  Når standardskjemaet er aktivt, aktiveres kommandoen med tastbindingen "Ctrl+S". Når Emacs-skjemaet er aktivt, aktiveres kommandoen med sekvensen "Ctrl+X Ctrl+S".

Definere nye skjemaer

Når plugin-modulen definerer en binding, vil den mest sannsynlig bli tilknyttet et eksisterende skjema. Det kan imidlertid tenkes at plugin-modulen definerer en helt ny skjemastil.  I så fall kan du definere en ny type skjema i definisjonen org.eclipse.ui.bindings.  Nedenfor ser du arbeidsbenkkodetypen som definerer standard- og Emacs-tastkonfigurasjoner:

...
<scheme
       name="%keyConfiguration.default.name"
       description="%keyConfiguration.default.description"
       id="org.eclipse.ui.defaultAcceleratorConfiguration">
</scheme>
<scheme
       name="%keyConfiguration.emacs.name"
       parentId="org.eclipse.ui.defaultAcceleratorConfiguration"
       description="%keyConfiguration.emacs.description"
       id="org.eclipse.ui.emacsAcceleratorConfiguration">
</scheme>
...

Merk at navnet (name) som er definert her, blir brukt på preferansesiden i skjemalisten.

Aktivere et skjema

Brukeren kontrollerer det aktive skjemaet via preferansesiden.  Du kan imidlertid definere standardskjema som skal være aktivt, som en del av filen "plugin_customization.ini". Dette er en preferanse:

org.eclipse.ui/KEY_CONFIGURATION_ID=org.eclipse.ui.defaultAcceleratorConfiguration