Schemes

Les schemes sont utilisées pour représenter un thème ou un style général de combinaisons. Par exemple, le Plan de travail fournit une scheme "par défaut" et une scheme "Emacs".  Une seule scheme est active à un moment donné.  L'utilisateur final contrôle laquelle est active en utilisant la boîte de dialogue Préférences.

D'un point de vue de l'implémentation, les schemes sont simplement nommées des groupements de combinaisons.  Une scheme n'accomplit rien d'elle-même, excepté si elle est associée à des combinaisons.  

Revenons sur les marques du plan de travail pour org.eclipse.ui.bindings pour trouver les définitions de combinaisons et savoir comment associer une scheme à une combinaison.

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

Dans la commande "org.eclipse.ui.file.save", deux combinaisons de touches différentes sont définies.  Vous remarquerez qu'une schemeId différente est définie pour chacune.  Lorsque la scheme standard est active, la combinaison de touches "Ctrl+S" appelle la commande.  Lorsque la scheme emacs est active, la séquence "Ctrl+X Ctrl+S" appelle la commande.

Définition de nouvelles schemes

Lorsque votre plug-in définit une combinaison, il l'affecte généralement à une scheme existante.  Mais le plug-in peut définir des styles de schemes totalement nouveaux.  Auquel cas, vous pouvez définir un nouveau type de scheme dans la définition org.eclipse.ui.bindings.  Les marques du plan de travail qui définissent les configurations de touches par défaut et emacs sont présentées ci-dessous :

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

Notez que le nom défini ici est celui utilisé dans la page de préférences de la liste des schemes.

Activation d'une scheme

L'utilisateur contrôle la scheme active via la page de préférences.  Mais vous pouvez définir la scheme active par défaut dans le fichier "plugin_customization.ini". Préférence pour :

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