我正在开发一个旨在隐藏大量菜单贡献的插件,然后根据用户的自信心/经验慢慢地将它们重新引入UI,并在每一步向用户提供帮助和介绍性信息。到目前为止,我可以愉快地使用活动隐藏菜单贡献。然而,事实证明,将它们取回来会稍微困难一些。
我通过活动隐藏和显示菜单贡献,但我遇到的问题是菜单没有立即更新以反映活动。当我提供的变量被更改时,活动 正确启动/停止,但菜单不会立即更改。也就是说,直到您更改导致菜单刷新的视图或透视操作。
我尝试按照this question调用MenuManager上的refresh(),但无济于事。
显然我的表达式正在被立即评估,但是如何让菜单本身立即更新/刷新? 谢谢!
事实证明fireSourceChanged()存在问题。
致电:fireSourceChanged(int sourcePriority, Map sourceValuesByName)
对我不起作用。
但是调用fireSourceChanged(int sourcePriority, String sourceName, Object sourceValue)
确实有效。
我真的不知道为什么会这样 - 可能是一个Eclipse bug?