如何根据项目性质在eclipse RCP应用程序中设置`activeWhen / enabledWhen`命令

时间:2014-03-20 13:17:27

标签: java swt eclipse-rcp jface

我使用项目性质RCPProjectNature_1和RCPProjectNature_2来使用RCP。

我想仅在具有自然RCPProjectNature_1的项目打开且一旦使用RCPProjectNature_1的项目关闭工具栏菜单时才会激活某些工具栏菜单。

例如 我有日食项目

  1. 项目性质类型为RCPProjectNature_1的RCPProject1
  2. 项目性质类型为RCPProjectNature_2的RCPProject2
  3. 应用程序具有有效的工具栏菜单,只有在打开了RCPProjectNature_1的任何项目时才应启用该菜单。否则它应该变灰了

    我如何在plugin.xml中编写表达式?

1 个答案:

答案 0 :(得分:3)

要测试单个项目,请使用<test>属性上的org.eclipse.core.resources.projectNature

来自org.eclipse.jdt.ui插件的示例:

<enabledWhen>
   <adapt type="org.eclipse.core.resources.IProject">
      <test property="org.eclipse.core.resources.projectNature"
            value="org.eclipse.jdt.core.javanature"/>
   </adapt>         
</enabledWhen>

何时测试具有Java特性的Project对象。

更新

没有办法在正常的命令表达式中迭代所有项目,所以你 必须使用org.eclipse.core.expressions.propertyTesters扩展点编写自己的属性测试器。此属性测试人员可以检查工作区项目(IProject对象)。