0

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弹出菜单:TableTableViewer

    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 ..

4

1 回答 1

0

作为参考,我推送了一些代码来纠正问题。它将在 eclipse v4.6.1+ bug #496695 中

于 2016-08-28T13:42:34.287 回答