2013-04-10 33 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

相關問題