2010-11-15 99 views
1

我有一個帶有許多插件的Eclipse RCP應用程序。每個插件都有自己的視角,新視圖或共享視圖。 我需要創建一個基於原始插件的獨立應用程序。 此應用程序將充當每個插件/透視圖的權限配置器。Eclipse RCP和遍歷透視和視圖

要做到這一點,我需要做到以下幾點:所有的插件在

  • 力初始化啓動
  • 得到應用中的所有觀點對象和顯示的ID
  • 每個角度獲取與視角相關的所有視圖並顯示其ID
  • 對於每個視圖對象獲取所有屬性(每個視圖實際上都將從一個特殊的基礎視圖繼承:例如SpecialView)

基於一個特殊角色(管理員)將爲所有其他角色(應該顯示哪個透視圖,每個透視圖中將顯示哪些視圖,每個視圖中哪些命令將被激活等)配置權限。

我有關於上述要求的問題:

  • 如何在啓動時強制所有插件初始化(Eclipse中使用lazy激活)?
  • 如何獲得透視對象(而不是IPerspectiveDescriptor)和查看對象?

回答

0

要強制激活,您可以在plugin.xml編輯器中設置一個標誌,前提是插件是Singleton。

要查找的意見,你可以循環擴展註冊表的觀點,提供插件的正確ID和觀點和視角的擴展點:

IExtensionRegistry er = Platform.getExtensionRegistry(); 
IExtensionPoint ep = er.getExtensionPoint(plug-in_id, extensionId); 
IExtensions[] ext = ep.getExtensions(); 

一旦你的擴展,你可以有還有實施它的班級等等。

+0

嗨。謝謝你的答案。我試過了,但它看起來像你的例子中的ep(IExtensionPoint)只包含Eclipse擴展。我已經激活所有插件後使用調試器。 – 2010-11-16 13:01:45

+0

如果您想查找必須循環瀏覽「org.eclipse.ui.view」擴展點的擴展的視圖,例如IExtensionPoint ep = er.getExtensionPoint(「org.eclipse.ui.views」); ep.getExtensions();在這個數組中你可以找到RCP中所有視圖的配置參數。在我Insatnce我發現:com.collabnet.subversion.merge [15] com.instantiations.designer.core [29] org.deved.antlride.debug.ui [121] org.deved.antlride。 ui [129]而不只是org.eclipse。*視圖 – pbanfi 2010-11-16 15:11:09

+0

嗨。再次感謝你。我會嘗試你的解決方案。我需要首先獲得透視對象,我可以訪問視圖對象的形式(我已經完成了)。 – 2010-11-17 08:17:06