单击包时添加菜单项

时间:2014-06-20 12:05:55

标签: eclipse-plugin

我需要在右键单击任何包时打开的菜单中添加一个项目。

我到目前为止所做的是将这些行添加到plugin.xml:

 <objectContribution id="myPlugin.menu" objectClass="org.eclipse.jdt.core.IPackageFragment">

    <menu id="myPlugin.menu1" label="My New Item"></menu>

    <action
          class="myPlugin.rightClickMenu.NewActivityAction"
          enablesFor="1"
          id="myPlugin.newAction"
          label="Create New Activity"
          menubarPath="myPlugin.menu1/group1">
    </action>

 </objectContribution>

简而言之, 这是非常好的,并且做我需要的一切。 它在我右键单击包时打开的菜单中显示“我的新项目”。 当我点击任何其他文件夹,文件或项目时,它不起作用。

但是,

这已被弃用......

我找到了另一种方法:

<menuContribution locationURI="popup:org.eclipse.jdt.ui.PackageExplorer?before=additions">

<separator name="separetor1" visible="true"></separator>

  <command commandId="openMyMenu"
    label="My New Item" style="push">       
  </command>

</menuContribution>

<command defaultHandler="myPlugin.rightClickMenu.NewActivityAction"

  id="openMyMenu" name="createActivity">

</command>

这不是弃用的, 但这显示菜单中的“我的新项目”总是无论我点击什么。 甚至对于JRE系统库菜单。

任何人都可以帮助我吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您需要在menuContribution:

中的命令中使用visibleWhen元素
<command commandId="openMyMenu"
   label="My New Item" style="push">       
   <visibleWhen>
        <iterate
              ifEmpty="false"
              operator="or">
           <adapt
                type="org.eclipse.jdt.core.IPackageFragment">
           </adapt>
       </iterate>
   </visibleWhen>
</command>