2012-04-12 46 views
2

在這樣here它描述了許多文件,舊的擴展點org.eclipse.ui.actionSetsorg.eclipse.ui.viewActionsorg.eclipse.ui.editorActions,並在Eclipse 3.2 org.eclipse.ui.popupMenus是由新org.eclipse.ui.menus擴展點取代在Eclipse 3.3中。貢獻通過org.eclipse.ui.menus擴展點的「editorAction」

所以我的簡單問題: 如何使用新的擴展點org.eclipse.ui.menus來貢獻一個editorAction工具欄(org.eclipse.ui.editorActions)?

我在許多不同的locationURI值中嘗試了類似以下內容的東西,但它從未工作。

<extension point="org.eclipse.ui.menus"> 
     <menuContribution locationURI="toolbar:my.editor.id"> 
     <command 
       commandId="my.command.id" 
       icon="icons/somicon.gif" 
       label="Do my command" 
       style="push"> 
     </command> 
     </menuContribution> 
    </extension> 

我的命令從來沒有出現,我沒有得到控制檯中的任何反饋。那麼locationURI的正確屬性是什麼?爲了讓我的命令在那裏?

該命令適用於其他工具欄,它也通過舊的擴展點(修改命令類)工作。

爲什麼我需要新的擴展名piont? 因爲它不僅支持命令,而且還支持控件,您可以在其中提供比簡單按鈕更多的功能。

最後更新

下面將溶液旨在代替從editorActions擴展點的功能。由於最後評論中提到的錯誤中提到的錯誤,該替換並不是很有用。 無論如何接受...

+0

也許完整的editorAction工具欄及其概念已被棄用,應該使用由katsharp解釋的機制。對此想法的任何官方確認將會很好... – wuppi 2012-04-13 14:23:14

+0

如果您想要官方確認,您應該詢問Eclipse新聞組/論壇。 – katsharp 2012-05-18 13:41:52

回答

3

我設法用這個locationURI作出貢獻的主工具欄在Eclipse:

locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions" 

因此,例如,貢獻我的命令,只有當我的編輯器激活工具欄:

<extension 
    point="org.eclipse.ui.menus"> 
    <menuContribution 
     locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions"> 
    <toolbar 
      id="mytoolbar.id" 
      label="my toolbar"> 
     <command 
       commandId="command.id" 
       icon="icons/sample.gif" 
       id="mytoolbar.command.id" 
       label="Do my command" 
       style="push"> 
      <visibleWhen 
       checkEnabled="false"> 
        <with 
         variable="activePartId"> 
          <equals 
          value="my.editor.id"> 
          </equals> 
        </with> 
      </visibleWhen> 
     </command> 
    </toolbar> 
    </menuContribution> 
</extension> 

其中command.id是我的命令的ID。

+0

謝謝你的版本。但它不是editorAction工具欄,當活動編輯器不是指定的編輯器時,它將完全隱藏。我必須將其添加到我的所有命令中。 – wuppi 2012-04-13 14:05:25

+0

你是什麼意思的editorAction工具欄,是一個主工具欄的一部分? – katsharp 2012-04-13 14:11:33

+0

它是一個獨立的工具欄,用於保存編輯器操作。它會在編輯器處於活動狀態時顯示,並在編輯器處於非活動狀態時隱藏。所有顯示和隱藏都會自動完成該工具欄中的所有操作。 – wuppi 2012-04-13 14:21:37