A associação entre uma definição de ação e as combinações de teclas que devem chamar a ação é chamada de acelerador. Um conjunto de aceleradores é uma lista de aceleradores. Os plug-ins podem contribuir com conjuntos de aceleradores utilizando o ponto de extensão org.eclipse.ui.acceleratorSets. O workbench define um conjunto de aceleradores que fornece ligações de teclas do tipo emacs:
<extension point="org.eclipse.ui.acceleratorSets"> <acceleratorSet scopeId="org.eclipse.ui.globalScope" configurationId="org.eclipse.ui.emacsAcceleratorConfiguration"> <accelerator key="Ctrl+F4||Ctrl+X Ctrl+K" id="org.eclipse.ui.file.close"> </accelerator> <accelerator key="Ctrl+Shift+F4||Ctrl+X Ctrl+C" id="org.eclipse.ui.file.closeAll"> </accelerator> <accelerator key="Ctrl+X Ctrl+S" id="org.eclipse.ui.file.save"> </accelerator> ...
Há nosso amigo org.eclipse.ui.file.save. Lembrar da nossa definição de ação hipotética:
<extension point = "org.eclipse.ui.actionSets"> <actionSet id="com.example.actions.actionSet" label="Exemplo de Ações" visible="true"> <action id="com.example.actions.action1" menubarPath="additions" label="Exemplo de Ação de Salvamento" class="org.example.actions.ExampleActionDelegate" definitionID="org.eclipse.ui.file.save"> </action> ... </actionSet> </extension>
Quando nosso exemplo de conjunto de ações está ativo, nossa ação de salvamento será chamada quando o usuário escolher Ctrl+X seguido de Ctrl+S. (O uso de ||, tal como "Ctrl+Shift+F4||Ctrl+X Ctrl+C" indica que é possível utilizar uma das combinações de teclas para ativar a ação.)
Da mesma forma, quando SaveAction do workbench estiver ativa, as mesmas combinações de teclas a chamarão no lugar, uma vez que o workbench utilizou o mesmo id de definição de ação de SaveAction.
Para concluir o exemplo, precisamos entender o que scopeID e configurationId significam. Vamos ver as configurações primeiro.