2012-08-23 25 views
2

如何强制Eclipse对所有处理程序的activeWhen条件进行重新评估?Eclipse强制处理程序重新评估

情况: 我已经在TreeViewer上定义了一个命令。该命令有多个可能的处理程序。处理程序已经定义了一些条件来决定处理程序是否被激活。

我的问题是没有重新评估处理程序的条件,直到我取消选择树中的项目(例如选择另一个项目)并再次选择它。

如果选择内容没有改变但是引发条件有变化(例如,由于元素的更新),将会执行错误的处理程序。

有没有办法手动强制处理程序重新评估的选择?

回答

1

如果您的条件使用属性测试器检查树视图选择器中的状态,那么您需要通知IEvaluationService该属性已更改。请参见org.eclipse.ui.services.IEvaluationService.requestEvaluation(String)

+0

这只适用于使用enabledWhen而不是activeWhen的人。你能看看我输入的问题吗?我想我也发现了4.2回归。 http://stackoverflow.com/questions/13278818/eclipse-force-handlers-using-activewhen-to-re-evaluate –