【问题标题】:eclipse rcp keybindings don't workeclipse rcp 键绑定不起作用
【发布时间】:2015-05-13 15:54:36
【问题描述】:

我正在尝试使 Eclipse 键绑定工作。 我试图使重命名命令起作用。 我查看了一些教程并进行了实验。我在控制台 (http://eclipsesource.com/blogs/2009/07/08/tip-tracing-keybindings-in-rcp/) 中启用了命令和键绑定跟踪。

我创建了一个自定义命令:

com.mycompany.myproduct.command.rename

这是我目前得到的:

1) 我尝试按照本教程进行操作,http://www.vogella.com/tutorials/EclipseCommandsKeybindings/article.html,但我得出的结论是这是针对 e3 的。这是因为您需要添加仅识别旧 e3 处理程序的命令插件。不涉及 xmi

2) 我尝试使用 xmi 绑定上下文。我在顶级命令树中注册了我的命令,并连接到顶级处理程序树中的处理程序。 在绑定表部分,我有一个在 Dialog 和 Windows 上下文中工作的 bindingTable。我添加了一个键绑定。序列是“F2”,它连接到我的自定义命令。

当我按 F2 时,我在跟踪中收到以下消息:

COMMANDS >>> execute >>> starting: id=org.eclipse.ui.edit.rename; event=ExecutionEvent(Command(org.eclipse.ui.edit.rename,Rename,
        Rename the selected item,
        Category(org.eclipse.ui.category.file,File,null,true),
        org.eclipse.ui.internal.MakeHandlersGo@1285594,
        ,,true),{},Event {type=1 Tree {} time=1480412218 data=null x=0 y=0 width=0 height=0 detail=0},org.eclipse.e4.ui.workbench.modeling.ExpressionContext@177fc1a)

简而言之,默认的 eclipse IDE 重命名命令被触发(我的键绑定什么都不做),我的应用程序什么也没有发生。

但是,如果我将序列更改为“M1+1”并按 ctrl + 1,则会出现一个小弹出窗口,让我在“快速修复”(eclipse IDE 命令)和我的重命名之间进行选择。如果我选择重命名处理程序会触发。

现在,我如何禁用 Eclipse IDE 默认键绑定。第1步教程的说明绝对不会做。

谢谢!

【问题讨论】:

  • 纯 e4 RCP 不应该使用任何 'org.eclipse.ui.xxx' 插件
  • Vogella e4 tutorial 涵盖了键绑定。
  • 如果@FOCUS 注释丢失,显然存在一个众所周知的问题。 vogella.com/tutorials/EclipseRCP/…
  • 好的,在升级 eclipse 并深入研究之后,我设法让键绑定以 E3 方式工作。但是,我正在构建一个具有兼容性层的 e4 应用程序,并且我的所有命令都是 E4。似乎 E3 正在阻止 E4 键绑定...我该如何克服呢??
  • 是的,我确实有一些 org,eclipse.ui.xxx 插件...但是如果我删除它们,我的应用程序将无法运行...

标签: eclipse-rcp e4


【解决方案1】:

您可以尝试强制 E4 以用户身份读取您的键绑定,将“type:user”标签添加到 KeyBinding 本身:

【讨论】:

  • 太棒了!!!你怎么知道的???????这些信息在任何地方都不可用!!!!说真的,你怎么知道???我什至有拉斯的书。我们说话的时候,还有一个问题要问你。我有一个 3.x 包资源管理器树,其中包含一个通过 plugin.xml 定义重命名操作的操作提供程序。此 3.x 操作运行 E4 重命名处理程序。当我为重命名 (F2) 设置我的 E4 keybinfing 时,重命名操作能否以某种方式识别它并在上下文菜单中打印它?
  • 您应该能够使用中间命令将键绑定直接连接到您的处理程序:所有这些都在 e4xmi 中
  • 你没有说你的标签信息来源是什么 :-)
【解决方案2】:

我发誓有时应用程序似乎只是喜欢看到我们受苦。我遇到了同样的问题;前段时间我的键绑定工作得很好,今天我注意到它不再工作了。感谢这篇文章,我找到了 2 个解决方案:

  1. 上述评论中的“type:user”
  2. 从运行配置中删除 org.eclipse.ui;似乎这是在我自己添加一些插件后按添加所需插件时添加的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-24
    • 1970-01-01
    • 1970-01-01
    • 2017-07-08
    • 2011-04-24
    • 2012-02-05
    • 2021-06-27
    • 1970-01-01
    相关资源
    最近更新 更多