我在 Eclipse Luna RCP 中的命令处理程序有问题。
在我的 E4 应用程序模型中,我定义了一些仅在特定情况下必须启用的命令和相关处理程序。出于这个原因,在我的处理程序 POJO 中,我实现了用@CanExecute
我检查所需条件的位置注释的方法。
我还定义了与这些命令相关的菜单和工具栏项。
问题是我的@CanExecute
方法没有被正确调用,因此菜单和工具栏项没有相应地启用/禁用。
特别是,对于菜单项,这些@CanExecute
方法仅在应用程序启动时被调用几次,但在那之后就不再调用了。
相反,对于工具栏项,这些@CanExecute
方法仅在活动上下文更改时调用(例如,当更改活动部分或打开新外壳时)。
在开普勒中,行为完全不同(并且按预期工作):
- 对于菜单项,
@CanExecute
每次显示菜单时都会调用这些方法 @CanExecute
对于工具栏项目,有一个计时器每 400 毫秒调用一次方法
这是 Luna 中的已知错误吗?您知道实现预期行为的任何可能的解决方法吗?
谢谢!