2012-09-17 49 views
1

我想通過我的插件在eclipse中添加一個屬性頁面。此屬性頁面必須僅針對本質項目啓用。我在plugin.xml中Eclipse PropertyPage啓用

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

上面的代碼工作正常,在項目瀏覽器和導航視圖的項目寫下面的代碼。但是,這同樣不適用於資源管理器視圖。

那麼,如何實現特定於package explorer視圖的相同功能呢?

回答

0

我還沒有嘗試過,但我的觀點是,在包瀏覽器有沒有org.eclipse.core.resources.IProject元素,你應該嘗試你有(例如org.eclipse.jdt.core.IJavaProject

+0

我應該如何告訴我正在做的檢查是用於Package Explorer視圖 – Ramg

2

你應該將你的instanceof檢查內適應任何輸入。

+0

同意如書面所述,節點除了適應某些與你的本性相關的內容之外,還必須擁有一個IProject。 – nitind

1

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