2

ここのような多くのドキュメントでは、 Eclipse 3.2の古い拡張ポイントorg.eclipse.ui.actionSets、、、、がEclipse 3.3 の新しい拡張ポイントに置き換えられたと説明されています。org.eclipse.ui.viewActionsorg.eclipse.ui.editorActionsorg.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 に答える