【问题标题】:Activate a plugin from another plugin in Eclipse RCP从 Eclipse RCP 中的另一个插件激活插件
【发布时间】:2017-06-25 10:32:40
【问题描述】:

当我从菜单启动它们时,我有 2 个插件可以正常工作。但是,当我单击第一个插件的 UI 上的按钮时,我想启动第二个插件。

我已经按照此处的建议查看了 getBundle().start() 方法:https://www.eclipse.org/forums/index.php/t/99869/ 但它没有产生任何结果。第二个捆绑包在控制台上打印时将其捆绑包状态显示为 ACTIVE,但其 UI 未显示在屏幕上。

任何帮助将不胜感激!

【问题讨论】:

  • Activator 启动方法只能由 Eclipse 自己调用,这将在适当的时候自动完成。第二个插件到底应该做什么?请注意,start 方法不适合进行 GUI 操作。
  • 第二个插件有自己的图形用户界面。我的第一个插件提供了第二个插件可以用来显示图形的信息。我无法以编程方式启动第二个插件。

标签: java eclipse eclipse-plugin eclipse-rcp


【解决方案1】:

让您的第二个插件提供一个 API,该 API 显示第一个插件在单击按钮时可以调用的图形。此 API 可能像调用单个方法一样简单,它可能类似于您在菜单中使用的代码。

在第二个插件中,将包含 API 的包添加到 MANIFEST.MF 中的“Export-Package”列表中(在 MANIFEST.MF 编辑器中,您可以在“Exported Packages”列表中的“Runtime”选项卡上执行此操作) .

在第一个插件中,将第二个插件添加到其依赖项 - MANIFEST.MF 中的“Require-Bundle”列表(在编辑器中,这是“依赖项”选项卡上的“必需插件”)。

【讨论】:

    【解决方案2】:

    我参考了以下帖子: Programmatically showing a View from an Eclipse Plug-in

    以下代码终于为我工作了:

    Display.getDefault().asyncExec(new Runnable() {
        @Override
        public void run() {
           PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("viewId");
    
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-09
      • 2017-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-31
      • 1970-01-01
      相关资源
      最近更新 更多