Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Eclipse插件中为Java项目添加弹出操作_Java_Eclipse_Plugins - Fatal编程技术网

在Eclipse插件中为Java项目添加弹出操作

在Eclipse插件中为Java项目添加弹出操作,java,eclipse,plugins,Java,Eclipse,Plugins,我想在Eclipse插件中添加Java项目的弹出项。My plugin.xml包含: <extension point="org.eclipse.ui.popupMenus"> <objectContribution objectClass="org.eclipse.jdt.core.IJavaProject" id="com.contribution1"> <action label="Actio

我想在Eclipse插件中添加Java项目的弹出项。My plugin.xml包含:

<extension point="org.eclipse.ui.popupMenus">
  <objectContribution
        objectClass="org.eclipse.jdt.core.IJavaProject"
        id="com.contribution1">
     <action
           label="Action"
           class="com.actions.NewAction"
           enablesFor="1"
           id="com.actions.newAction">
     </action>
  </objectContribution>


但是,该菜单项不会显示在弹出窗口中。如果改用IPackageFragment,则菜单项显示得很好。请告知。

好的,问题是Java项目仅在Java透视图中被视为IJavaProject,用于测试插件的Eclipse实例从Resources透视图开始。如果切换到Java透视图,一切正常。

如果要在另一个资源管理器中显示菜单(例如在资源透视图的项目资源管理器中),则必须按如下所示更改objectContribution定义:

  • objectclass属性设置为org.eclipse.core.resources.IProject

  • 添加一个可见性元素,以过滤不具有Java特性的项目的菜单/操作

  • 即:

    
    ...
    
    可能重复:是的,我在发布此问题之前发现了该线程,但它并没有完全涵盖我的问题。忘记添加,因为org.eclipse.ui.popupmones扩展点不推荐使用,我建议改用org.eclipse.ui.commands。
    <objectContribution
          adaptable="true"
          objectClass="org.eclipse.core.resources.IProject">
    ...
       <visibility>
          <objectState
                name="projectNature"
                value="org.eclipse.jdt.core.javanature">
          </objectState>
       </visibility>
    </objectContribution>