2012-06-21 60 views
3

編輯:
我想要做的是以編程方式在Rclipse-RCP 3.7應用程序的preferences-menu中添加preferences-pages。 不幸的是,這似乎不是以編程方式工作,如描述 in this postEclipse RCP - 以編程方式更改plugin.xml?刷新?

作爲一個解決方案,我想創建一個特殊的插件,它將保持偏好。這個插件應該在它的plugin.xml中聲明所有的首選項頁面,然後卸載/安裝它自己以在首選項菜單中應用更改。

問:

有沒有一種可能性

  1. 變化插件的plugin.xml中自己編程?
  2. 是否有可能以編程方式更新插件,從plugin.xml重新加載新設置?
+1

您能否告訴_您想解決什麼問題_而不是提出可能的解決方案_? – Bananeweizen

回答

3

這將有助於理解您嘗試解決的問題,而不是您正在做的事情。

一般來說,沒有簡單的方法來做你想做的。

通過使用OSGi卸載並重新安裝捆綁包,您可以強制重新加載plugin.xml。見org.osgi.framework.Bundle.uninstall()。但是,根據plugin.xml提供的擴展名,擴展點使用者不會被寫入爲動態感知。

RCP應用程序的其他選項是使用org.eclipse.core.runtime.IExtensionRegistry.addContribution(InputStream, IContributor, boolean, String, ResourceBundle, Object)貢獻擴展名。這對於動態添加非常有用,它對於刪除擴展的可靠性較差,並且適用相同的警告(擴展點消費者的動態感知方式)。通過將用戶標記設置爲空,您可以在RCP應用程序中使用它。

+0

如果我將標記設置爲空,則會出現錯誤。我如何獲得主令牌或用戶令牌? –

+0

您必須將org.eclipse.core.internal.registry.IRegistryConstants.PROP_REGISTRY_NULL_USER_TOKEN設置爲true –

相關問題