我在 Eclipse Luna RCP 中的命令处理程序遇到问题。
在我的 E4 应用程序模型中,我定义了一些必须启用的命令和相关处理程序
仅在某些情况下。因此,在我的处理程序 POJO 中,我实现了
注释为的方法@CanExecute
我在其中检查所需的条件。
我还定义了与这些命令相关的菜单和工具栏项。
问题是我的@CanExecute
方法没有被正确调用,因此,
菜单和工具栏项不会相应地启用/禁用。
特别是对于菜单项,@CanExecute
方法仅在应用程序启动时调用几次,但此后不再调用。
对于工具栏项目,@CanExecute
仅当活动上下文更改时(例如,更改活动部分或打开新 shell 时),才会调用方法。
在开普勒中,行为完全不同(并且按预期工作):
- 对于菜单项,
@CanExecute
每次显示菜单时都会调用方法
- 对于工具栏项目,有一个计时器调用
@CanExecute
每 400 毫秒执行一次
这是 Luna 中的已知错误吗?您知道有什么可能的解决方法可以实现预期的行为吗?
Thanks!
这是错误中描述的 Eclipse Luna 中的设计更改427465, also 436755
您可以使用工具栏 @CanExecute 方法运行:
eventBroker.send(UIEvents.REQUEST_ENABLEMENT_UPDATE_TOPIC, UIEvents.ALL_ELEMENT_ID);
“事件经纪人”是IEventBroker
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)