Schemata

Schemata werden verwendet, um eine allgemeine Darstellung oder ein Thema eines Bindings darzustellen. Die Workbench bietet beispielsweise ein "Standardschema" und ein "Emacs-Schema". Es ist jeweils nur ein Schema aktiv.Endbenutzer steuern die aktive Konfiguration mit dem Workbench-Dialog Benutzervorgaben.

Aus Sicht der Implementierung handelt es sich bei Schemata einfach um benannte Gruppen von Bindings. Ein Schema kann nicht eigenständig eingesetzt werden, es sei denn, ihm wurden bestimmte Bindings zugeordnet.  

An dieser Stelle sollen erneut die Konfigurationsbefehle der Workbench für org.eclipse.ui.bindings herangezogen werden, um die Definitionen von Bindings vorzustellen und zu zeigen, wie einem Schema ein Binding zugeordnet wird.

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

Für den Befehl "org.eclipse.ui.file.save" sind zwei verschiedene Tastenbelegungen definiert.  Bitte beachten Sie, dass für beide eine jeweils unterschiedliche schemeId definiert wurde.  Wenn das Standardschema aktiv ist, ruft die Tastenbelegung "Strg+S" den Befehl auf. Ist das Emacs-Schema aktiv, so wird der Befehl über die Sequenz "Strg+X Strg+S" aufgerufen.

Neue Schemata definieren

Wenn Ihr Plug-in ein Binding definiert, wird es dieses höchst wahrscheinlich einem bestehenden Schemazuweisen. Es kann aber auch vorkommen, dass Ihr Plug-in einen völlig neuen Schemastil definieren soll.  Wenn dies der Fall ist, können Sie einen neuen Schematyp in der Definition org.eclipse.ui.bindings definieren.  Bei dem folgenden Ausschnitt handelt es sich um das Befehlsformat der Workbench, das die Standard- und Emacs-Tastenkonfiguration definiert:

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

Bitte beachten Sie, dass der hier definierte Parameter name auf der Seite mit den Benutzervorgaben in der Liste der verfügbaren Schemata verwendet wird.

Ein Schema aktivieren

Der Benutzer steuert das aktive Schema über die Benutzervorgabenseite.  Sie können jedoch das standardmäßig aktive Schema als Teil der Datei "plugin_customization.ini" definieren. Es handelt sich hierbei um eine Benutzervorgabe:

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