l.m*_*tto 3 eclipse-rcp handler canexecute e4 eclipse-luna
我在Eclipse Luna RCP中遇到了命令处理程序的问题.
在我的E4应用程序模型中,我定义了一些必须在某些情况下才能启用的命令和相关处理程序.出于这个原因,在我的处理程序POJO中,我实现了注释用于@CanExecute检查所需条件的方法.
我还定义了与这些命令相关的菜单和工具栏项.
问题是我的@CanExecute方法没有被正确调用,因此,菜单和工具栏项不会相应地启用/禁用.
特别是,对于菜单项,@CanExecute方法仅在应用程序启动时调用几次,但在此之后从不调用.
相反,对于工具栏项,@CanExecute仅在活动上下文更改时(例如,更改活动部件或打开新shell时)调用方法.
在开普勒,行为完全不同(并按预期工作):
@CanExecute每次显示菜单时都会调用这些方法@CanExecute每400ms 调用一次方法这是Luna中的已知错误吗?您知道任何可能的解决方法来实现预期的行为吗?
谢谢!
这是Eclipse Luna中的设计更改,在bug 427465中也有描述,也就是436755
您可以使用以下命令运行工具栏@CanExecute方法:
eventBroker.send(UIEvents.REQUEST_ENABLEMENT_UPDATE_TOPIC, UIEvents.ALL_ELEMENT_ID);
'eventBroker'是IEventBroker.