2013-04-10 54 views
3

我在我的RCP应用程序中实现了自定义工具栏。我还使用org.eclipse.ui.menus扩展名将命令提供给自定义工具栏。我如何让我的自定义工具栏通过IElementUpdater更新其项目

<extension 
    point="org.eclipse.ui.menus"> 
    <menuContribution    
     locationURI="toolbar:com.my.custom.toolbar.identifier.toolbar"> 
    <command 
      commandId="com.my.command.id" 
      icon="icons/my_icon.png" 
      style="toggle" 
      tooltip="My Toggle Tooltip"> 
     </command> 
    </menuContribution> 
</extension> 

我已经写了查找这些IConfigurationElements并将其转换为我用,将它们添加到我的自定义工具栏CommandContributionItems的代码。

我有一些类型切换的工具栏项目,我需要这些来使用命令的处理程序实现的IElementUpdater接口来更新他们的UI。

我也将这个命令提供给一个标准的Eclipse菜单......比如“toolbar:org.eclipse.ui.main.toolbar”,它的切换状态在适当时通过IElementUpdater更新。

我可能在我的自定义工具栏中丢失了一些与IElementUpdater挂钩的东西,但我不知道从哪里开始寻找这项工作。

回答

1

我已经使用了IElementUpdater,但不是用于更新切换状态的情况,因为这应该通过连接到相应的Command来完成。然而,Eclipse 4中存在一些问题,我已经开始在blog article中指出。

您使用的是什么Eclipse变体? 3.x还是4.x? 4.x中存在bug关于贡献及其命令状态的同步。

+0

我正在运行3.x RCP应用程序。它由CoolBar和包含工具栏的CoolItem组成。 – twindham 2013-04-22 15:31:10

+0

那么在这种情况下,如果您只是想解决切换问题,那么看看这篇文章http://blog.eclipse-tips.com/2009/03/commands-part-6-toggle-radio-menu .html ..切换是通过连接到命令及其相应的命令状态来解决的。 – 2013-04-23 08:57:21

+0

我已经看过您已链接到的文章,并且已成功使用其中的示例获取Eclipse主工具栏上切换按钮的更新。这是我的自定义工具栏,不工作。我想我需要花一些时间来阅读Eclipse源代码,看看Eclipse的主工具栏是如何从IElementUpdater获取通知的。 – twindham 2013-04-23 14:40:53