相当于不推荐的platform.getplugin(),需要访问org.eclipse.ui插件



在自定义插件中,我需要从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时才可以访问插件。

所以我有两个问题:

  1. org.eclipse.ui插件的单例暴露了吗?
  2. 如果是,访问org.eclipse.ui插件的Platform.getPlugin()等效是什么?

Platform.getPlugin没有等效的API。您可以使用Platform.getBundleFileLocator.find获得有关其他插件的有限信息,但这在这里无济于事。

org.eclipse.ui插件确实具有UIPlugin.getDefault()方法,但这是在 internal 软件包中,因此如果使用它,您将破坏Eclipse API参与规则。

>

对于对话框设置,在您自己的插件上调用getDialogSettings不是您无法控制的其他插件。

最新更新