Esquemas

Os Esquemas são utilizados para representar um estilo ou tema geral das ligações. Por exemplo, o Workbench fornece um esquema "Default" e "Emacs".  Apenas um esquema está ativo em determinado momento.  Os usuários finais controlam qual delas está ativa utilizando o diálogo Preferências geral.

Do ponto de vista da implementação, os esquemas são simplesmente agrupamentos nomeados de ligações.  Um esquema não realiza nada por si próprio, a menos que haja ligações associadas a ele.  

Vejamos novamente a marcação do workbench em org.eclipse.ui.bindings para localizar as definições de ligação e como um esquema é associado a uma ligação.

...
<chave
       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 ligações de teclas diferentes definidas para o comando "org.eclipse.ui.file.save".  Observe que cada uma possui um schemeId diferente definido.  Quando o esquema default está ativo, a ligação de teclas "Ctrl+S" chamará o comando.  Quando o esquema emacs está ativo, a seqüência "Ctrl+X Ctrl+S" chamará o comando.

Definindo Novos Esquemas

Quando seu plug-in definir uma ligação, provavelmente a atribuirá a um esquema existente.  Entretanto, o plug-in pode desejar definir um estilo completamente novo de esquema. Se este for o caso, é possível definir um novo tipo de esquema dentro da definição org.eclipse.ui.bindings.  A marcação do workbench que define as configurações de teclas default e emacs são mostradas 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>
...

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

Ativando um Esquema

O usuário controla o esquema ativo por meio da página de preferências.  Entretanto, é possível definir o esquema ativo padrão como parte da definição de "plugin_customization.ini". É uma preferência:

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