方案用来表示绑定的一般样式或主题。例如,工作台提供了“Default”方案和“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”命令定义了两个不同的键绑定。注意,为每个键绑定定义了不同的 schemeId。当 default 方案处于活动状态时,“Ctrl+S”键绑定将调用该命令。当 emacs 方案处于活动状态时,序列“Ctrl+X Ctrl+S”将调用该命令。
当插件定义绑定时,最有可能的情况是将它指定给现有方案。但是,插件可能想要定义全新的方案样式。如果是这样,请在 org.eclipse.ui.bindings 定义中定义新的方案类型。定义 default 和 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> ...
注意,此处定义的 name 就是在首选项页面中的方案列表中使用的名称。
用户通过首选项页面控制活动方案。但是,可以将缺省活动方案定义成“plugin_customization.ini”文件的一部分。它是一个首选项:
org.eclipse.ui/KEY_CONFIGURATION_ID=org.eclipse.ui.defaultAcceleratorConfiguration