相当于弃用的 Platform.getPlugin(),需要访问 org.eclipse.ui 插件
Equivalent to the deprecated Platform.getPlugin(), need access to org.eclipse.ui plugin
在我需要从 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()
方法。
我发现 here 有人有同样的问题但没有答案。
而且我发现 there 只有当创建者公开单例时我才能访问插件。
所以我有两个问题:
org.eclipse.ui
插件单例是否暴露?
- 如果是,那么
Platform.getPlugin()
访问org.eclipse.ui
插件相当于什么?
没有 API 等同于 Platform.getPlugin
。您可以使用 Platform.getBundle
和 FileLocator.find
获得有关其他插件的有限信息,但这对这里没有帮助。
org.eclipse.ui
插件确实有一个 UIPlugin.getDefault()
方法,但这是在 内部 包中,所以你会破坏 Eclipse API Rules of Engagement 如果你用过。
对于对话框设置,标准做法是在您自己的插件上调用 getDialogSettings
,而不是您无法控制的其他插件。
在我需要从 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()
方法。
我发现 here 有人有同样的问题但没有答案。 而且我发现 there 只有当创建者公开单例时我才能访问插件。
所以我有两个问题:
org.eclipse.ui
插件单例是否暴露?- 如果是,那么
Platform.getPlugin()
访问org.eclipse.ui
插件相当于什么?
没有 API 等同于 Platform.getPlugin
。您可以使用 Platform.getBundle
和 FileLocator.find
获得有关其他插件的有限信息,但这对这里没有帮助。
org.eclipse.ui
插件确实有一个 UIPlugin.getDefault()
方法,但这是在 内部 包中,所以你会破坏 Eclipse API Rules of Engagement 如果你用过。
对于对话框设置,标准做法是在您自己的插件上调用 getDialogSettings
,而不是您无法控制的其他插件。