Esquemas

Os esquemas são usados para representar um estilo geral ou uma temática de associações. Por exemplo, a Área de trabalho faculta um esquema que é "Predefinição" e um esquema denominado "Emacs".  Só está activo um esquema de cada vez.  Os utilizadores finais controlam quais os esquemas activos através da página de preferências Geral > Chaves .

Do ponto de vista de uma implementação, os esquemas são meramente agrupamentos de associações denominados.  Um esquema nada concretiza por si só sem ter associações a ele associadas.   

Vejamos novamente a marcação de área de trabalho de org.eclipse.ui.bindings para conhecermos as definições de associação e como é que um esquema fica associado a uma associação.

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

Há duas associações de teclas diferentes definidas para o comando "org.eclipse.ui.file.save".  Repare que cada qual tem um schemeId diferente definido.  Quando está activo o esquema predefinido, a associação de teclas "Ctrl+S" invoca o comando.  Quando está activo o esquema emacs, é a sequência "Ctrl+X Ctrl+S" que invoca o comando.

Definir novos esquemas

Quando o plug-in define uma associação, é provável que a atribua a um esquema existente.  Todavia, o plug-in poderá optar por definir um estilo completamente novo de esquema.  Se for este o caso, poderá definir novo tipo de esquema dentro da definição org.eclipse.ui.bindings.  A marcação de área de trabalho que define as configurações de teclas predefinida e emacs encontra-se a seguir:

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

Repare que o name aqui definido é o utilizado na página de preferências na lista de esquemas.

Activar um esquema

O utilizador controla o esquema activo através da página de preferências.  Todavia, pode definir o esquema activo predefinido como parte do ficheiro "plugin_customization.ini". É uma preferência:

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