在我的RCP应用程序的某一点上,我想使用F5,Shift + F5,Ctrl + N,Ctrl + P等快捷方式提供Start,Stop,Next,Previous等。这些已在标准方案中定义,有一段时间我想覆盖标准操作。
是否可以在运行时切换活动密钥绑定方案?
您可以使用org.eclipse.ui.contexts
扩展点为键绑定定义新的“上下文”,然后在该上下文中声明您的键绑定。
例如,Ant编辑器声明了一个上下文org.eclipse.ant.ui.AntEditorScope
:
<extension
point="org.eclipse.ui.contexts">
<context
name="%context.editingAnt.name"
description="%context.editingAnt.description"
parentId="org.eclipse.ui.textEditorScope"
id="org.eclipse.ant.ui.AntEditorScope">
</context>
</extension>
并在该上下文中声明键绑定:
<extension point="org.eclipse.ui.bindings">
<key
sequence="M1+M2+F"
contextId="org.eclipse.ant.ui.AntEditorScope"
commandId="org.eclipse.jdt.ui.edit.text.java.format"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"/>
要使用上下文,您必须激活它。在扩展TextEditor
覆盖initializeKeyBindingScopes
的编辑器中:
@Override
protected void initializeKeyBindingScopes() {
setKeyBindingScopes(new String[] { "org.eclipse.ant.ui.AntEditorScope" });
}
在其他地方使用IContextService
服务activateContext
方法。