如何切换Eclipse插件的菜单按钮图标和工具提示文本?

我正在开发一个Eclipse插件,它有一个工具栏菜单项,可以启用/禁用某个function。 我知道如何使用plugin.xml文件为它设置图标和工具提示文本,但我希望能够根据正在处理的项目的状态更改图标,尤其是工具提示文本。 即,如果未启用此function,我想要一个显示function的图标以及显示“启用function”的工具提示文本,但如果启用该function,我想要一个图标,显示关闭该function以及工具提示显示“禁用function”的文字。 现在,我能看到的唯一选项是一个通用图标和工具提示文本,上面写着“启用/禁用function”,但这对我来说很笨拙。

编辑添加:为了回应indigomonkey的答案,这是一个很好的基于我最初编写的答案,我想澄清一下,工具栏按钮启用的行为是我们真的不鼓励一旦它被禁用的行为启用(并且在启用它时validation他们是否要启用它时会弹出一个对话框,因为它不应该轻易启动,也不要阻止它们在启用后禁用它)。 因此,我希望图标更改为“不要点击我”。

如果您的命令Handler实现IElementUpdaterupdateElement只要运行该命令,就会调用updateElement方法。

updateElementUIElement参数具有setIconsetTooltip方法。

我建议您选择将工具栏贡献创建为“复选框”类型,而不是标准的“推送”。 这意味着按钮将在选定状态和未选定状态之间切换,允许您将此行为等同于function的启用和禁用状态。

如果您正在使用org.eclipse.ui.commandsorg.eclipse.ui.handlers以及org.eclipse.ui.menus扩展点来为您的按钮添加元素,那么您需要设置它要check style属性。 然后,您可以从处理程序内部读取和切换命令的选择。

有关更多信息,请参阅http://blog.eclipse-tips.com/2009/03/commands-part-6-toggle-radio-menu.html 。