Eclipse-RCP键盘快捷键仅在用户按下相应的菜单项

时间:2016-04-25 10:18:03

标签: java eclipse eclipse-rcp keyboard-shortcuts

我目前正在将Eclipse RCP 3.1应用程序迁移到Eclipse 4.2,它到目前为止运行良好。因为应用程序很老,所以没有命令,旧的操作概念仍在使用中。自定义键盘快捷键可以正常工作,但有三个快捷键可以解决问题:保存撤消帮助。对于那些快捷方式,我不得不介绍命令的概念:

<extension point="org.eclipse.ui.bindings">
        <key sequence="CTRL+S"
            commandId="org.eclipse.ui.file.save"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            contextId="org.eclipse.ui.contexts.window"/>
        <key sequence="CTRL+Z"
            commandId="org.eclipse.ui.edit.undo"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            contextId="org.eclipse.ui.contexts.dialogAndWindow"/>
        <key sequence="CTRL+H"
            commandId="org.eclipse.ui.help.helpContents"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            contextId="org.eclipse.ui.contexts.window"/>
    </extension>

现在这些快捷方式与日食自己的快捷方式相冲突。

!ENTRY org.eclipse.jface 2 0 2016-04-25 10:08:11.263
!MESSAGE Keybinding conflicts occurred.  They may interfere with normal accelerator operation.
!SUBENTRY 1 org.eclipse.jface 2 0 2016-04-25 10:08:11.263
!MESSAGE A conflict occurred for CTRL+S:
Binding(CTRL+S,
    ParameterizedCommand(Command(org.eclipse.ui.file.save,Save,
        Save the current contents,
        Category(org.eclipse.ui.category.file,File,null,true),
        org.eclipse.ui.internal.WorkbenchHandlerServiceHandler@7ef7f414,
        ,,true),null),
    org.eclipse.ui.defaultAcceleratorConfiguration,
    org.eclipse.ui.contexts.window,,,system)
Binding(CTRL+S,
    ParameterizedCommand(Command(org.eclipse.ui.file.save,Save,
        Save the current contents,
        Category(org.eclipse.ui.category.file,File,null,true),
        org.eclipse.ui.internal.WorkbenchHandlerServiceHandler@7ef7f414,
        ,,true),null),
    org.eclipse.ui.defaultAcceleratorConfiguration,
    org.eclipse.ui.contexts.window,,,system)
    ...

更改Eclipse的键绑定,以便保存撤消帮助继续工作。第一次按 CTRL + H 时,将打开搜索对话框。推出它第二次,帮助终于打开了。 只有当用户首先通过菜单条目执行这些操作时,这三个快捷方式才有效。之后,快捷方式就可以了。

我不明白这种行为。有办法解决这个问题吗?

0 个答案:

没有答案