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 lo schema attivo utilizzando la pagina delle preferenze
Generale > Chiavi .
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".
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.
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