【问题标题】:Eclipse plugin development- Different folder with different popup menu options in package explorerEclipse 插件开发 - 包资源管理器中具有不同弹出菜单选项的不同文件夹
【发布时间】:2015-04-13 06:18:26
【问题描述】:

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

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

具有不同弹出菜单选项的不同文件夹。 以及如何使这些文件夹彼此不同以设置不同的弹出菜单选项。

【问题讨论】:

    标签: eclipse eclipse-plugin popupmenu


    【解决方案1】:

    您必须执行 2 个步骤:

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

    活动:你在 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>
    

    插件注册表视图可用于查找操作的 ID

    我从来没有尝试过春分变换,但这里是链接: 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

    【讨论】:

    • 它对我有用。我的理解是,每当用户右键单击任何 .java 文件时,它都会显示一个带有标签“我的命令标签”的弹出菜单是吗??
    • 你必须运行一个新的 eclipse 实例,运行 eclipse + 上面描述的包含菜单扩展的插件
    猜你喜欢
    • 2017-12-06
    • 2014-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    相关资源
    最近更新 更多