Включение страницы свойств Eclipse

Я хочу добавить страницу свойств в 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>

The above code works fine for the projects in project explorer and navigator view. But the same doesn't work in package Explorer view.

Итак, как добиться той же функциональности, характерной для представления обозревателя пакетов?


person Ramg    schedule 17.09.2012    source источник


Ответы (3)


Вы должны переместить проверку instanceof внутрь адаптировать.

person Konstantin Komissarchik    schedule 17.09.2012
comment
Согласовано. Как написано, узел должен сам по себе быть IProject в дополнение к тому, чтобы быть адаптированным к чему-то с вашей природой. - person nitind; 17.09.2012

Я не пробовал, но мое мнение таково, что в вашем проводнике пакетов нет элементов org.eclipse.core.resources.IProject, вы должны попробовать любой ввод, который у вас есть (например, org.eclipse.jdt.core.IJavaProject)

person Bela Vizer    schedule 17.09.2012
comment
Как я должен сказать, что проверка, которую я делаю, предназначена для представления обозревателя пакетов. - person Ramg; 17.09.2012

@nitind прав, вы указываете слишком много ограничений. Вы хотите сказать «Включено», когда выбор адаптируется к IProject и его свойство «projectNaure» включает «мою природу».

Это должно сделать это:

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

person E-Riz    schedule 29.01.2013