Eclipse 插件:在外部 JAR 中的所有 class 文件上显示上下文函数

Eclipse Plugin: Show context function on all class-Files in external JARs

我正在开发一个 Eclipse 插件,我想在 Project Explorer 的上下文菜单中添加一个条目。只有当 class-文件被 selected 时,该条目才应该可见。

将以下内容添加到我的 plugin.xml 文件中即可。但是,当我 select 外部 JAR 中的 class 文件时,它不起作用。这种行为的原因是什么?我怎样才能使我的上下文菜单在这种情况下也可见?

      <menuContribution
            allPopups="false"
            locationURI="popup:org.eclipse.ui.popup.any">
         <command
               commandId="my_command"
               label="Test"
               style="push">
               <visibleWhen>                           
                    <iterate
                         ifEmpty="false">
                     <adapt type="org.eclipse.core.resources.IFile">
                       <test property="org.eclipse.core.resources.name" value="*class" />
                     </adapt>
                    </iterate>
                </visibleWhen>
         </command>
      </menuContribution>

感谢用户 greg-449 和 howlger 我解决了我的问题。问题在于 JAR 文件中的对象未表示为 IFile。因此,我调整了 visibleWhen 部分:

<visibleWhen>                          
    <iterate ifEmpty="false">
          <instanceof value="org.eclipse.jdt.core.IOrdinaryClassFile" />
    </ iterate>
</visibleWhen>