1

我想通过我的插件在 eclipse 中添加一个属性页。此属性页面必须仅针对我的性质的项目启用。我在 plugin.xml 中编写了以下代码

<extension
   point="org.eclipse.ui.propertyPages">
 <page
      class="com.test.me.ME"
      id="com.test.me.ME"
      name="ME">
     <and>
        <instanceof 
              value="org.eclipse.core.resources.IProject">
        </instanceof>
        <adapt
              type="org.eclipse.core.resources.IResource">
               <test
                    property="org.eclipse.core.resources.projectNature"
                    value="com.test.me.meprojectnature">
               </test>
    </adapt>
</and> 
 </page>

上面的代码适用于项目资源管理器和导航器视图中的项目。但同样在包资源管理器视图中不起作用。

那么,如何实现特定于包资源管理器视图的相同功能呢?

4

3 回答 3

2

您应该将您的 instanceof 检查移到适应中。

于 2012-09-17T15:07:10.157 回答
1

我没有尝试过,但我的观点是在你的包资源管理器中没有org.eclipse.core.resources.IProject元素,你应该尝试你有任何输入(例如org.eclipse.jdt.core.IJavaProject

于 2012-09-17T11:37:52.403 回答
1

@nitind 是对的,您指定了太多约束。You want to say "Enabled when the selection is adaptable to an IProject and it's "projectNaure" property includes "my nature."

这应该这样做:

   <extension point="org.eclipse.ui.propertyPages">
  <page
        name="My Property Page"
        class="some.package.MyPropertyPage"
        id="some.package.MyPropertyPage">
     <enabledWhen>
         <adapt type="org.eclipse.core.resources.IProject">
              <test
                 property="org.eclipse.core.resources.projectNature"
                 value="some.package.MyNatureID"/>
         </adapt>         
     </enabledWhen>
  </page>

于 2013-01-29T02:49:08.550 回答