修改
我想要做的是,以编程方式在Rclipse-RCP 3.7应用程序中将首选项页面添加到首选项菜单中。
不幸的是,如上所述,这似乎不能以编程方式工作
in this post
作为一种解决方案,我考虑创建一个特殊的插件,它将保持首选项。此插件应在其plugin.xml中声明所有首选项页面并卸载/安装自身以在首选项菜单中应用更改。
问题:
是否有可能
答案 0 :(得分:3)
理解你想要解决的问题,而不是你正在做的事情会有所帮助。
一般来说,没有简单的方法可以做你想做的事。
您可以使用OSGi卸载并重新安装捆绑包,强制重新加载plugin.xml。见org.osgi.framework.Bundle.uninstall()
。但是,根据plugin.xml提供的扩展,不会将扩展点消费者编写为动态识别。
RCP应用的另一个选项是使用org.eclipse.core.runtime.IExtensionRegistry.addContribution(InputStream, IContributor, boolean, String, ResourceBundle, Object)
提供扩展程序。这对于动态添加非常有用,它对于删除扩展的可靠性较低,同样需要注意(动态感知是扩展点的使用者)。您可以通过将用户标记设置为null来在RCP应用程序中使用它。