Схемы используются для создания общего стиля привязок. Например, рабочая среда содержит схему "По умолчанию" и схему "Emacs". Одновременно активной может быть только одна схема. Конфигурации можно активировать с помощью окна общих параметров.
С точки зрения реализации схемы являются простыми именованными группами привязок. Схема сама по себе не имеет смысла, если в ней не содержатся привязки.
Давайте еще раз взглянем на код рабочей среды для org.eclipse.ui.bindings и рассмотрим определения привязок и то, как схемы связываются с привязками.
... <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> ...
Для команды "org.eclipse.ui.file.save" заданы две разные привязки клавиш. Обратите внимание, что для каждой из них определена своя схема. Когда активна схема по умолчанию, для запуска команды используется привязка клавиш "Ctrl+S". Когда активна схема emacs, для запуска команды используется сочетание клавиш "Ctrl+X Ctrl+S".
Когда модуль задает привязку, скорее всего он привяжет ее к имеющейся схеме. Однако модуль может и задать новую. В этом случае можно задать новую схему внутри определения org.eclipse.ui.bindings. Ниже приведен код рабочей среды, задающий схему по умолчанию и схему 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> ...
Обратите внимание, что заданное здесь имя используется на странице параметров в списке схем.
Схемы активируются на странице параметров. Однако, можно задать схему по умолчанию в файле plugin_customization.ini. Ис пользуйте этот параметр:
org.eclipse.ui/KEY_CONFIGURATION_ID=org.eclipse.ui.defaultAcceleratorConfiguration