As configurações de teclas são utilizadas para representar um estilo ou tema geral das ligações de teclas. Por exemplo, o Workbench fornece uma configuração de teclas "Standard" e uma configuração de teclas "Emacs". Apenas uma configuração de teclas está ativa em determinado momento. Os usuários finais controlam qual delas fica ativa utilizando o diálogo Preferências do workbench.
Do ponto de vista da implementação, as configurações de teclas são simplesmente agrupamentos nomeados de ligações de teclas. Uma configuração de teclas não realiza nada por si própria, a menos que haja ligações de teclas associadas a ela.
Vejamos novamente a marcação do workbench em org.eclipse.ui.commands para localizar as definições de ligação de teclas e saber como uma configuração de teclas é associada a uma ligação de teclas.
... <keyBinding string="Ctrl+S" scope="org.eclipse.ui.globalScope" command="org.eclipse.ui.file.save" configuration="org.eclipse.ui.defaultAcceleratorConfiguration"> </keyBinding> ... <keyBinding string="Ctrl+X Ctrl+S" scope="org.eclipse.ui.globalScope" command="org.eclipse.ui.file.save" configuration="org.eclipse.ui.emacsAcceleratorConfiguration"> </keyBinding> ...
Há duas ligações de teclas diferentes definidas para o comando "org.eclipse.ui.file.save". Observe que cada uma possui uma configuração diferente definida. Quando a configuração standard está ativa, a ligação de teclas "Ctrl+S" chamará o comando. Quando a configuração emacs estiver ativa, a seqüência "Ctrl+X Ctrl+S" chamará o comando.
Quando seu plug-in definir uma ligação de teclas, provavelmente a atribuirá a uma configuração de teclas existente. Entretanto, o plug-in pode desejar definir um estilo completamente novo de configurações de teclas. Se este for o caso, é possível definir um novo tipo de configuração de teclas dentro da definição org.eclipse.ui.commands. A marcação do workbench que define as configurações de teclas standard e emacs são mostradas a seguir:
... <keyConfiguration name="%keyConfiguration.standard.name" description="%keyConfiguration.standard.description" id="org.eclipse.ui.defaultAcceleratorConfiguration"> </keyConfiguration> <keyConfiguration name="%keyConfiguration.emacs.name" parent="org.eclipse.ui.defaultAcceleratorConfiguration" description="%keyConfiguration.emacs.description" id="org.eclipse.ui.emacsAcceleratorConfiguration"> </keyConfiguration> ...
Observe que name definido aqui é aquele utilizado na página de preferências na lista de configurações.
O usuário controla a configuração ativa por meio da página de preferências. Entretanto, é possível definir a configuração ativa padrão como parte da definição de org.eclipse.ui.commands. O workbench estabelece a configuração de teclas padrão como o padrão quando ele define a extensão:
<extension point="org.eclipse.ui.commands"> <activeKeyConfiguration value="org.eclipse.ui.defaultAcceleratorConfiguration"> </activeKeyConfiguration> ...