"适应"在visibleWhen中,menuContribution始终返回false

时间:2017-03-01 13:49:09

标签: eclipse eclipse-rcp

我正在尝试关注Lars Vogel's tutorial on natures,并且卡在定义菜单visibleWhen的位置。当我将以下内容添加到command中的menuContribution定义中时:

    <visibleWhen
          checkEnabled="false">
       <adapt
             type="org.eclipse.core.resources.IProject">
       </adapt>
    </visibleWhen>

在项目浏览器中右键单击项目时,我的菜单项永远不会出现。

我仔细检查了所有必要的内容,例如org.eclipse.core.runtimeorg.eclipse.core.resourcesorg.eclipse.ui作为依赖项。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

您需要使用<iterate>,因为您正在测试的是可能包含多个项目的选项:

例如,这是PDE API分析工具命令定义之一:

<command
       commandId="org.eclipse.pde.api.tools.ui.convert.javadocs"
       style="push">
    <visibleWhen
          checkEnabled="false">
       <iterate>
          <adapt
                type="org.eclipse.core.resources.IProject">
             <test
                   property="org.eclipse.core.resources.projectNature"
                   value="org.eclipse.pde.api.tools.apiAnalysisNature">
             </test>
          </adapt>
       </iterate>
    </visibleWhen>
 </command>