在自定义插件中,我需要从Eclipse 4.5.2迁移到Eclipse 4.6.3,我正在使用以下代码访问org.eclipse.ui插件
public class myClass extends Wizard {
...
AbstractUIPlugin plugin = (AbstractUIPlugin) Platform.getPlugin("org.eclipse.ui");
IDialogSettings settings = plugin.getDialogSettings();
IDialogSettings section = workbenchSettings.getSection("myWizard");
if (section == null) {
section = workbenchSettings.addNewSection("myWizard");
}
setDialogSettings(section);
...
}
,但是由于4.6.0 org.eclipse.core.runtime.compatibility
插件已被删除。所以我无法使用Platform.getPlugin()
方法。
我在这里发现有人有同等问题,但没有答案。而且我发现只有在创建者公开Singleton时才可以访问插件。
所以我有两个问题:
-
org.eclipse.ui
插件的单例暴露了吗? - 如果是,访问
org.eclipse.ui
插件的Platform.getPlugin()
等效是什么?
Platform.getPlugin
没有等效的API。您可以使用Platform.getBundle
和FileLocator.find
获得有关其他插件的有限信息,但这在这里无济于事。
org.eclipse.ui
插件确实具有UIPlugin.getDefault()
方法,但这是在 internal 软件包中,因此如果使用它,您将破坏Eclipse API参与规则。
对于对话框设置,在您自己的插件上调用getDialogSettings
不是您无法控制的其他插件。