首页 > 解决方案 > 插件,编译单元

问题描述

我正在制作一个插件,并且我希望仅在选择包含类的 .java 文件时才出现弹出菜单。我的问题是当我在 .java 文件(IType)中选择一个类时,菜单也会出现。我希望它仅在选择 .java 文件时出现(CompilationUnit)。

例子:

例子.

我的xml代码:

<menuContribution
    allPopups="true"
    locationURI="popup:org.eclipse.ui.navigator.ProjectExplorer#PopupMenu?after=additions">
         <menu
               id="org.plugin.generate_test.handlers.menus.popupTestMenu2"
               label="Generate"
               mnemonic="P2">
            <command
                  commandId="org.plugin.generate_test.handlers.commands.generateCommand"
                  id="org.plugin.generate_test.handlers.menus.generateCommand"
                  mnemonic="PC2"
                  style="push">
               <visibleWhen
                     checkEnabled="false">
                  <with
                        variable="activeMenuSelection">
                     <iterate
                           ifEmpty="false">
                        <adapt
                              type="org.eclipse.core.resources.IResource">
                           <test
                                 property="org.eclipse.core.resources.extension"
                                 value="java">
                           </test>
                        </adapt>
                     </iterate>
                  </with>
               </visibleWhen>
            </command>
         </menu>
</menuContribution>

标签: javaxmlpluginsmenueclipse-plugin

解决方案


尝试用<adapt测试替换你的 fo ICompilationUnit

<instanceof value="org.eclipse.jdt.core.ICompilationUnit"/>

推荐阅读