【问题标题】:Eclipse PropertyPage enablingEclipse PropertyPage 启用
【发布时间】:2012-09-17 11:21:19
【问题描述】:

我想通过我的插件在 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>

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

那么,如何实现与包浏览器视图相同的功能呢?

【问题讨论】:

    标签: eclipse eclipse-pde eclipse-plugin pde


    【解决方案1】:

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

    【讨论】:

    • 同意。正如所写,节点本身必须一个IProject,除了适应你的本性。
    【解决方案2】:

    我还没有尝试过,但我认为在您的包资源管理器中没有 org.eclipse.core.resources.IProject 元素,您应该尝试输入任何内容(例如 org.eclipse.jdt.core.IJavaProject

    【讨论】:

    • 我应该如何判断我正在做的检查是针对 Package Explorer 视图。
    【解决方案3】:

    @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>
    

    【讨论】:

      猜你喜欢
      • 2019-09-14
      • 1970-01-01
      • 2011-07-27
      • 2015-09-08
      • 2017-08-07
      • 1970-01-01
      • 2013-11-25
      • 2021-12-07
      • 1970-01-01
      相关资源
      最近更新 更多