2

在像这里这样的许多文档中,都描述了 Eclipse 3.2 中的旧扩展点org.eclipse.ui.actionSetsorg.eclipse.ui.viewActionsorg.eclipse.ui.editorActions和被Eclipse 3.3 中的新扩展点替换。org.eclipse.ui.popupMenusorg.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,让我的命令在那里?

该命令适用于其他工具栏,它也可以通过旧扩展点工作(修改命令类)。

为什么我需要新的扩展点?因为它不仅支持命令,还支持控件,您可以在其中贡献的不仅仅是一个简单的按钮。

最终更新

下面的解决方案旨在替换 editorActions 扩展点的功能。由于答案最后评论中提到的错误,这种替换并不是真的有用。总之接受了...

4

1 回答 1

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。

于 2012-04-13T13:56:29.760 回答