如何在运行时激活键绑定?

问题描述 投票:0回答:1

在我的RCP应用程序的某一点上,我想使用F5,Shift + F5,Ctrl + N,Ctrl + P等快捷方式提供Start,Stop,Next,Previous等。这些已在标准方案中定义,有一段时间我想覆盖标准操作。

是否可以在运行时切换活动密钥绑定方案?

eclipse-rcp keyboard-shortcuts
1个回答
1
投票

您可以使用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方法。

© www.soinside.com 2019 - 2024. All rights reserved.