通过org.eclipse.ui.menus扩展点提供“editorAction”

时间:2012-04-12 12:46:34

标签: java eclipse-rcp

在许多文档中,如here所述,Eclipse 3.2中的旧扩展点org.eclipse.ui.actionSetsorg.eclipse.ui.viewActionsorg.eclipse.ui.editorActionsorg.eclipse.ui.popupMenus被替换为Eclipse 3.3中新的org.eclipse.ui.menus扩展点。

所以我的简单问题: 如何使用新的扩展点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扩展点替换功能。由于答案最后评论中提到的错误,该替换并不是真正有用。 无论如何接受......

1 个答案:

答案 0 :(得分: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。