popup:org.eclipse.jdt.ui.PackageExplorer对Java项目不可见

时间:2014-08-12 00:13:10

标签: eclipse-plugin

我正在为Eclipse编写一个插件来帮助我解决一些自定义错误和警告。通过使用向导创建新的插件项目开始,选择包含其中的自然和标记的选项。

这会自动在项目的上下文菜单中添加一个菜单项(popup:org.eclipse.jdt.ui.PackageExplorer?after = addeds)

这似乎适用于大多数项目。除了我需要它的项目。菜单项根本不会显示在Package Explorer中的Java项目中。

我之前只更改了默认值?之后,所以菜单项位于更适合我的位置(对于它可以使用的项目)。

Screenshot if what i've got now
这表明它正在使用Package Explorer中的非Java项目。

我还在Project Explorer中添加了相同的菜单项,一切正常。

Here is a link to the plugin.xml i currently have.

它没有工作的项目是一个简单的java项目,它是从Eclipse" New - >中新生成的。 Java项目"向导。任何其他java项目都不起作用。

它所做的项目,是从插件开发 - >中新生成的。更新站点项目"向导。

我试过的东西:

我知道它与popup:org.eclipse.jdt.ui.PackageExplorer not visible不一样,我将菜单项添加到项目的上下文菜单中,而不是文件或目录。 但是,我确实尝试使用:

<adapt type="org.eclipse.core.resources.IResource">
  <test property="org.eclipse.core.resources.contentTypeId" value="org.eclipse.jdt.core.IJavaProject" />
</adapt>

而不是<instanceof>标签,这也不起作用。事实上,删除整个<instanceof>代码甚至无效。

我知道它与Eclipse plugin menu item is not visible不一样,生成的plugin.xml使用了selection,后来我改为activeMenuSelection,因为它符合文档,以及插件在选择Spy说它实际上是。再一次,没有变化。

我认为它与How create popup menu item in PackageExplorer only for directories不一样,但我确实尝试使用建议的代码并玩弄它,没有运气。

所以,总结一下:

这是我的第一个Eclipse插件,大多数GUI内容都是从Plug-in Developent向导生成的。现在我希望一个真正的巫师可以引导我找到我想要的答案。

1 个答案:

答案 0 :(得分:0)

<adapt>标记让我有一个想法让项目适应IResource。然后检查<adapt>标记内的性质。这似乎有效!

eclipse.org上的Platform Expression Framework页面也帮助我理解了每个标签的确切功能。

所以,我认为我的问题实际上与我首先联系的问题相似(popup:org.eclipse.jdt.ui.PackageExplorer not visible)。现在对此感到非常愚蠢......

我当前plugin.xml的相关部分:

    <visibleWhen checkEnabled="false">
      <with variable="activeMenuSelection">
        <count value="1" />
        <iterate operator="and">
          <adapt type="org.eclipse.core.resources.IResource">
            <and>
              <not>
                <test property="org.eclipse.core.resources.projectNature" value="com.mycompany.converterhelper.javaFileNature" />
              </not>
              <test property="org.eclipse.core.resources.projectNature" value="org.eclipse.jdt.core.javanature" />
            </and>
          </adapt>
        </iterate>
      </with>
    </visibleWhen>

And a link to the entire plugin.xml

我要感谢Calon的时间和精力: - )