Schematy

Schematy reprezentują ogólny styl lub kompozycję przypisań. Na przykład w środowisku roboczym dostępne są schematy "Default" i "Emacs".  W danym momencie tylko jeden schemat może być aktywny.  Użytkownicy końcowi decydują, który schemat jest aktywny, używając ogólnego okna dialogowego Preferencje.

Z punktu widzenia implementacji schematy to po prostu nazwane grupy przypisań.  Schemat nie pełni sam z siebie żadnej funkcji, dopóki nie zostaną z nim powiązane przypisania.  

Warto ponownie przyjrzeć się punktowi rozszerzenia org.eclipse.ui.bindings w kodzie znaczników środowiska roboczego, aby znaleźć definicje przypisań i przekonać się, w jaki sposób definiuje się powiązanie konfiguracji klawiszy z przypisaniem.

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

Dla komendy "org.eclipse.ui.file.save" zdefiniowano dwa przypisania klawiszy.  Należy zwrócić uwagę, że dla każdego z nich zdefiniowano inny parametr schemeId.  Gdy aktywny jest schemat domyślny, do wywołania komendy służy przypisanie klawiszy "Ctrl+S".  Gdy jest aktywny schemat emacs, komendę można wywołać przy użyciu sekwencji "Ctrl+X Ctrl+S".

Definiowanie nowych schematów

Po zdefiniowaniu nowego przypisania dany moduł dodatkowy najprawdopodobniej przypisze je do istniejącego schematu.  Jednak ten moduł dodatkowy może także definiować zupełnie nowy styl schematu. W takiej sytuacji można zdefiniować nowy typ schematu wewnątrz definicji punktu rozszerzenia org.eclipse.ui.bindings.  Poniżej przedstawiono kod znaczników środowiska roboczego, który definiuje dwie konfiguracje klawiszy - domyślną i emacs:

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

Należy zauważyć, że parametr name zdefiniowany w tym miejscu jest używany na stronie preferencji na liście schematów.

Aktywowanie schematu

Użytkownik wybiera aktywny schemat na stronie preferencji.  Można też zdefiniować domyślny schemat aktywny w pliku "plugin_customization.ini". Ustawienie to może wyglądać następująco:

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