JMSToolBox是一个基于 eclipse-rcp v4.5.2 的应用程序。我尝试升级到 eclipse v4.6.0,但发现弹出菜单有如下问题:
- 零件在 e4 模型中定义为
Part Descriptor
(PD)。在该 PD 中定义了一个弹出菜单 - 在某个动作上,PD 描述符被实例化,该部分被添加并显示在一个
Part Stack
. 这部分的主体是一个TabFolder
带有多个标签的标签,对应于浏览的 JMS Q。每个选项卡主体基本上由一个TableViewer
/组成,Table
用于显示 JMS 消息。 每次创建新选项卡时,都会创建一个新
TableViewer
/并使用以下代码行在 上注册Table
弹出菜单:Table
TableViewer
menuService.registerContextMenu(table,<id of the popup menu in the part>);
这适用于 eclipse v4.5.2 (Mars) 但不适用于 v4.6.0 (Neon) !
对于 neon,弹出窗口仅适用于第一个选项卡:上下文菜单是可见的,并且@CanExecute
与菜单项的处理程序/命令关联的方法被调用。对于后续创建的选项卡,不会显示弹出窗口,@CanExecute
也不会调用菜单项的方法
如果我为每个选项卡注册一个具有不同 ID(以前添加到 PD)的不同菜单,它就可以工作!所以我怀疑这可能是由于具有相同元素 id 的菜单被添加到多个 TableViever/Table 中,即使它来自不同的 PD 实例......
它是霓虹灯的错误吗?回归?或者我是否受益于火星中的一个错误,使应用程序在这个版本上正常工作?
现在我必须降级(或不升级)到 Eclipse v4.5.2 ..