Eclipse plugin 与不推荐使用的Platform.getPlugin()等效,需要访问org.eclipse.ui插件

Eclipse plugin 与不推荐使用的Platform.getPlugin()等效,需要访问org.eclipse.ui插件,eclipse-plugin,eclipse-rcp,deprecated,Eclipse Plugin,Eclipse Rcp,Deprecated,在我需要从Eclipse4.5.2迁移到Eclipse4.6.3的自定义插件中, 我使用以下代码访问org.eclipse.ui插件 公共类myClass扩展向导{ ... AbstractUIPlugin=(AbstractUIPlugin)Platform.getPlugin(“org.eclipse.ui”); IDialogSettings=plugin.getDialogSettings(); IDialogSettings section=工作台设置.getSection(“myWi

在我需要从Eclipse4.5.2迁移到Eclipse4.6.3的自定义插件中, 我使用以下代码访问org.eclipse.ui插件

公共类myClass扩展向导{
...
AbstractUIPlugin=(AbstractUIPlugin)Platform.getPlugin(“org.eclipse.ui”);
IDialogSettings=plugin.getDialogSettings();
IDialogSettings section=工作台设置.getSection(“myWizard”);
if(节==null){
section=workbenchSettings.addNewSection(“myWizard”);
}
设置对话框设置(第节);
...
}
但是从4.6.0开始,
org.eclipse.core.runtime.compatibility
插件就被删除了。所以我不能使用
Platform.getPlugin()
方法

我发现有人有同样的问题,但没有答案。 我发现,只有当创建者公开单例时,我才能访问插件

所以我有两个问题:

  • org.eclipse.ui
    插件的单例是否公开
  • 如果是,访问
    org.eclipse.ui
    插件的
    Platform.getPlugin()
    等价物是什么

  • 没有与
    Platform.getPlugin
    等效的API。您可以使用
    Platform.getBundle
    FileLocator.find
    获取有关其他插件的有限信息,但在这里没有帮助

    org.eclipse.ui
    插件确实有一个
    UIPlugin.getDefault()
    方法,但这是在一个内部包中,因此如果您使用它,您将破坏该方法


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

    没有与
    Platform.getPlugin
    等效的API。您可以使用
    Platform.getBundle
    FileLocator.find
    获取有关其他插件的有限信息,但在这里没有帮助

    org.eclipse.ui
    插件确实有一个
    UIPlugin.getDefault()
    方法,但这是在一个内部包中,因此如果您使用它,您将破坏该方法


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

    这是我没有编写的代码,所以我不总是理解它为什么会这样做。在这里我不知道为什么要使用org.eclipse.ui插件。我试着不用它,并使用我的插件设置,正如你所说,它的工作。谢谢,这不是我写的代码,所以我不知道它为什么会这样。在这里我不知道为什么要使用org.eclipse.ui插件。我试着不用它,并使用我的插件设置,正如你所说,它的工作。非常感谢。