Eclipse插件开发 - 包浏览器中具有不同弹出菜单选项的不同文件夹

时间:2015-04-13 06:18:26

标签: eclipse eclipse-plugin popupmenu

当我在 Package Explorer 中单击鼠标右键时,如何创建不同的弹出菜单选项。

例如,我在 Package Explorer 中有一些名称不同的文件夹。 现在我想要的是当我右键单击一个文件夹时,它会显示一些弹出菜单,当右键单击另一个文件夹时,它会显示一些不同的弹出菜单。

这是具有不同弹出菜单选项的不同文件夹。 还有一些方法我如何将这些文件夹相互区别以设置不同的弹出菜单选项。

1 个答案:

答案 0 :(得分:0)

您必须执行两个步骤:

首先:删除弹出菜单中的现有项目,这可以通过两种方式完成: 通过活动或昼夜平分点转换

活动:您在plugin.xml中使用id来过滤您不想显示的内容

<extension point="org.eclipse.ui.activities">
   <category id="z.ex.commands.category"
         name="ReadMe Cat"/>
   <activity id="z.ex.commands.activity"
         name="ReadMe Act"/>
   <activityPatternBinding activityId="z.ex.commands.activity"
         isEqualityPattern="true"
         pattern="org.eclipse.ui.examples.readmetool/org.eclipse.ui.examples.readmetool.wizards.new.file"/>
   <categoryActivityBinding activityId="z.ex.commands.activity"
         categoryId="z.ex.commands.category">
</extension>

Plug-in Registry视图可用于查找操作的ID

我从不尝试使用equinox转换,但这里是链接: https://wiki.eclipse.org/Equinox_Transforms

第二步:在弹出菜单中添加项目:

<extension
         point="org.eclipse.ui.menus">
      <menuContribution
            locationURI="popup:org.eclipse.jdt.ui.PackageExplorer">
         <command
               commandId="my id"
               label="my command label"
               style="push">
          <visibleWhen>
           <with variable="activeMenuSelection">
            <iterate
                 ifEmpty="false">
             <adapt type="org.eclipse.core.resources.IResource">
               <test property="org.eclipse.core.resources.name" value="*.java"     />
             </adapt>
            </iterate>
           </with>
         </visibleWhen>
       </command>
      </menuContribution>
</extension>

您必须将IResource更改为所需目标(我相信您的情况下为IFolder,并将所需的过滤器应用于您的文件名而不是* .java