【问题标题】:How can I add popup menu in Project explorer context menu, only for .java files in project如何在项目资源管理器上下文菜单中添加弹出菜单,仅适用于项目中的 .java 文件
【发布时间】:2018-09-21 01:40:14
【问题描述】:

如何在项目资源管理器上下文菜单中添加弹出菜单,仅适用于项目中的 .java 文件。试图为一些测试制作一些插件,但我不知道如何让这个菜单只出现在 .java 类型的文件中。我使用 org.eclipse.core.resources.IFile 为 txt 文件做的。

plugin.xml

  <extension
     point="org.eclipse.ui.popupMenus">
  <objectContribution
        id="org.plugin.generate_test.contribution1"
        objectClass="org.eclipse.core.resources.IResources">
     <menu
           id="org.plugin.generate_test.menu1"
           label="Menu 1"
           path="additions">
        <separator
              name="group1">
        </separator>
     </menu>
     <action
           class="org.plugin.generate_test.popup.actions.GenerateTest"
           enablesFor="1"
           id="org.plugin.generate_test.action1"
           label="Action 1"
           menubarPath="org.plugin.generate_test.menu1/group1">
     </action>
  </objectContribution>
  </extension>

Extensions tab in plug-in

编辑:

现在我看到 org.eclipse.ui.popupMenus 已被弃用,所以现在有人可以告诉我如何使用菜单贡献来实现这一点。 我的代码:

      </menuContribution>
  <menuContribution
        allPopups="true"
        locationURI="menu:org.eclipse.ui.navigator.ProjectExplorer?after=additions">
     <menu
           id="org.plugin.generate_test.menus.popupTestMenu2"
           label="Generate Test"
           mnemonic="P2">
        <command
              commandId="org.plugin.generate_test.command.generateCommand"
              id="org.plugin.generate_test.menus.generateCommand"
              mnemonic="PC2"
              style="push">
        </command>
     </menu>
  </menuContribution>
  </extension>

我需要在项目资源管理器/包资源管理器的右键上下文菜单中添加此命令,仅适用于 .java 文件。

【问题讨论】:

    标签: java plugins eclipse-plugin plugin.xml


    【解决方案1】:

    对于包资源管理器:

    locationURI="popup:org.eclipse.jdt.ui.PackageExplorer?after=additions"
    

    或添加到所有类型的弹出窗口:

    locationURI="popup:org.eclipse.ui.popup.any?after=additions">
    

    【讨论】:

      【解决方案2】:

      您可以使用objectContributionnameFilter 属性。

      <extension
           point="org.eclipse.ui.popupMenus">
         <objectContribution
              adaptable="true"
              objectClass="org.eclipse.core.resources.IFile"
              nameFilter="*.java"
              id="org.plugin.generate_test.contribution1">
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-27
        • 2019-10-02
        • 1970-01-01
        相关资源
        最近更新 更多