【发布时间】:2014-06-25 16:16:37
【问题描述】:
Eclipse Luna RCP 中的命令处理程序有问题。
在我的 E4 应用程序模型中,我定义了一些必须启用的命令和相关处理程序
仅在某些情况下。出于这个原因,在我的处理程序 POJO 中,我实现了
用@CanExecute 注释的方法,我在其中检查所需的条件。
我还定义了与这些命令相关的菜单和工具栏项。
问题是我的@CanExecute 方法没有被正确调用,因此,
菜单和工具栏项没有相应地启用/禁用。
特别是,对于菜单项,@CanExecute 方法仅在应用程序启动时被调用几次,但此后就不再调用。
对于工具栏项,@CanExecute 方法仅在活动上下文发生变化时调用(例如,在更改活动部分或打开新外壳时)。
在 Kepler 中,行为完全不同(并且按预期工作):
- 对于菜单项,每次显示菜单时都会调用
@CanExecute方法 - 对于工具栏项,有一个计时器每 400 毫秒调用一次
@CanExecute方法
这是 Luna 中的已知错误吗?您知道实现预期行为的任何可能解决方法吗?
谢谢!
【问题讨论】:
标签: eclipse-rcp handler e4 canexecute eclipse-luna