键配置用来表示键绑定的通用样式或主题。例如,“工作台”提供了“标准”键配置和“Emacs”键配置。在任何给定时刻都只有一个键配置是活动的。最终用户使用工作台首选项对话框控制哪个配置是活动的。
从实现的角度看来,键配置就是键绑定的命名组。键配置自己不会完成任何操作(除非存在与它相关联的键绑定)。
让我们再次查看 org.eclipse.ui.commands 的工作台标记以找到键绑定定义并了解键配置如何与键绑定相关联。
... <keyBinding string="Ctrl+S" scope="org.eclipse.ui.globalScope" command="org.eclipse.ui.file.save" configuration="org.eclipse.ui.defaultAcceleratorConfiguration"> </keyBinding> ... <keyBinding string="Ctrl+X Ctrl+S" scope="org.eclipse.ui.globalScope" command="org.eclipse.ui.file.save" configuration="org.eclipse.ui.emacsAcceleratorConfiguration"> </keyBinding> ...
为“org.eclipse.ui.file.save”命令定义了两种不同的键绑定。注意,每种键绑定都定义了不同的配置。当标准配置为活动的时,“Ctrl+S”键绑定将调用该命令。当 emacs 配置为活动的时,序列“Ctrl+X Ctrl+S”将调用该命令。
当插件定义键绑定时,最有可能将它指定给现有键配置。但是,插件可能想要定义全新的键配置样式。如果情况是这样,则可以在 org.eclipse.ui.commands 定义内定义新的键配置类型。定义标准键配置和 emacs 键配置的工作台标记如下所示:
... <keyConfiguration name="%keyConfiguration.standard.name" description="%keyConfiguration.standard.description" id="org.eclipse.ui.defaultAcceleratorConfiguration"> </keyConfiguration> <keyConfiguration name="%keyConfiguration.emacs.name" parent="org.eclipse.ui.defaultAcceleratorConfiguration" description="%keyConfiguration.emacs.description" id="org.eclipse.ui.emacsAcceleratorConfiguration"> </keyConfiguration> ...
注意,此处定义的 name 是用在配置列表中的首选项页面中的名称。
用户通过首选项页面控制活动的配置。但是,可以将缺省活动配置定义为 org.eclipse.ui.commands 定义的一部分。工作台在定义扩展时将标准键配置建立为缺省值:
<extension point="org.eclipse.ui.commands"> <activeKeyConfiguration value="org.eclipse.ui.defaultAcceleratorConfiguration"> </activeKeyConfiguration> ...