2013-07-15 107 views
1

我正在爲我的應用程序添加一個插件來擴展現有插件的功能(用於高級報告)。該應用程序已經有一個首選項頁面。當用戶更改現有插件的首選項時,我需要「刷新」新插件的報告。Eclipse RCP:如何在不同的插件中擴展GUI組件?

我的想法是「擴展」現有插件的首選項頁面,以添加checkbox以「傳播更改以打開報告」並導致刷新。此刷新僅適用於新插件正在使用(它是可選的,現有的插件可以單獨使用)。如何擴展首選項頁面以添加checkbox,並在加載新插件時加載THAT首選項頁面而不是現有頁面?

這個問題也適用於擴展視圖和編輯器,但我不確定如何從不同的插件擴展(在Java定義中)GUI組件。我只能看到如何提供新的界面。

回答

0

您可以使用OSGi fragment。簡而言之,將一個片段添加到主機包(即「託管」片段的包),並且它可以覆蓋主機包中的任何內容。如果你根據類路徑思考,那麼片段總是首先出現,然後是主機包。

這意味着您可以將現有的首選項頁面複製到一個片段中,根據需要進行更改,然後將其編譯爲片段。

+0

謝謝你的建議Aaron。我已經研究了你的建議,並且正在嘗試eclipse插件開發中的解決方案。到目前爲止,我還沒有能夠覆蓋小部件。到目前爲止,我已經創建了Fragment項目並將其指向主機插件。我創建了相同的包並複製/編輯源代碼。剩下的就是它的配置。我看到了使用「library.jar」依賴關係並修改host和fragment的清單文件的參考。我也可以將該片段添加到產品相關性中。無論哪種方式,都看不到變化。任何想法或指針? – user2584002

+0

Aaron,我剛剛發現修復程序在構建完整產品時起作用,但在Eclipse框架中無法在Debug或Run模式下工作。所以,它幾乎可以工作,但我確定我需要調試新功能。 – user2584002

+0

嘗試將主機捆綁包導入到工作區中,因此您將兩者都作爲源並確保「調試」模式選擇一個。 –