Schemi

Gli schemi sono utilizzati per rappresentare uno stile o un tema generale di binding. Ad esempio, il workbench fornisce uno schema "Default" e uno schema "Emacs".  In un determinato momento può essere attivo un solo schema.  Gli utenti finali controllano la configurazione attiva utilizzando il dialogo generale Preferenze.

Dal punto di vista dell'implementazione, gli schemi sono semplicemente raggruppamenti denominati di binding.  Uno schema non è significativo se non dispone di binding associati.  

Di seguito si analizzano i tag del workbench di org.eclipse.ui.bindings per individuare le definizioni degli schemi e le modalità di associazione di uno schema ad un'associazione tasti.

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

Per il comando "org.eclipse.ui.file.save" sono state definite due associazioni di tasti.  Ognuna di esse presenta uno schemeId differente.  Quando è attivo lo schema predefinito, il comando viene richiamato dall'associazione di tasti "Ctrl+S".  Quando è attivo lo schema emacs, il comando viene richiamato dalla sequenza "Ctrl+X Ctrl+S".

Definizione di nuovi schemi

Quando un plugin definisce un binding, questo viene generalmente assegnato ad uno schema esistente.  Tuttavia, il plugin può definire uno stile di schema completamente diverso.  In questo caso, è possibile definire un nuovo tipo di schema all'interno della definizione org.eclipse.ui.bindings.  Di seguito vengono mostrati i tag del workbench che definiscono la configurazione di tasti default e emacs:

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

Si noti che name in questa definizione è lo stesso utilizzato nella pagina delle preferenze nell'elenco di schemi.

Attivazione di uno schema

L'utente controlla lo schema attivo tramite la pagina delle preferenze.  Tuttavia, è possibile definire lo schema attivo predefinito come parte del file "plugin_customization.ini". La preferenza è:

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