0

特定の性質を持つプロジェクトを右クリックしたときにのみ表示されるプラグインに eclipse menucontribution を作成しました。

<menuContribution
        allPopups="false"
        locationURI="popup:org.eclipse.ui.popup.any?after=additions">
     <menu
           icon="ico/full/obj16/icon-logo-composer.png"
           id="com.dubture.composer.lib.ui.menu"
           label="Composer">
        <visibleWhen
              checkEnabled="false">
           <iterate>
              <adapt
                    type="org.eclipse.core.resources.IProject">
                 <and>
                    <test
                          property="org.eclipse.core.resources.projectNature"
                          value="com.dubture.composer.core.composerNature">
                    </test>
                 </and>
              </adapt>
           </iterate>
        </visibleWhen>
     </menu>
  </menuContribution>

visibleWhen 条件は、プロジェクトを右クリックした場合にのみ機能するようです。メニューは、プロジェクトに指定された性質がある場合にのみ表示されます。

ただし、別の場所 (たとえば、プロジェクト エクスプローラーの空の領域または問題ビュー内) を右クリックすると、状況に関係なくメニュー エントリが表示されadaptます。

プロジェクトのみを右クリックするように制限する方法を知っている人はいますか?

4

1 に答える 1

0

プロパティはPropertyTestertestによって使用されます

menucontribution を に追加すると popup:org.eclipse.ui.popup.any?after=additions、どこにでも表示される可能性があると思いますpopup:org.eclipse.ui.navigator.ProjectExplorer#PopupMenu

このスニペットはコマンドを使用していますが、要件と組み合わせて機能するかどうかを確認できると思います

<menuContribution locationURI="popup:org.eclipse.ui.navigator.ProjectExplorer#PopupMenu">
 <command
       commandId="COMMANDID"
       icon="icons/icon.png"
       label="LABEL"
       style="push">
    <visibleWhen
          checkEnabled="false">
       <iterate
             ifEmpty="false"
             operator="and">
          <instanceof
                value="org.eclipse.core.resources.IProject">
          </instanceof>
       </iterate>
    </visibleWhen>
 </command>
</menuContribution>
于 2012-10-28T15:51:52.810 に答える