2016-06-09 64 views
0

我试图打开默认的p2安装向导,如果我的e4 RCP应用程序中的按钮被点击。如何从e4 RCP应用程序打开默认的p2安装向导?

我打电话ProvisioningUI.getDefaultUI().openInstallWizard在我的点击处理程序中打开向导。

点击此按钮抛出:

java.lang.IllegalStateException: Workbench has not been created yet. 
    at org.eclipse.ui.PlatformUI.getWorkbench(PlatformUI.java:93) 
    at org.eclipse.equinox.internal.p2.ui.ProvUI.getDefaultParentShell(ProvUI.java:155) 
    ... 

堆栈跟踪显示,该P2试图调用PlatformUI.getWorkbench,但据我所知这在E4应用程序不支持,依赖注入必须使用。

如何从e4 RCP应用程序打开默认的p2安装向导?

预先感谢您。

回答

1

由于p2 UI依赖于Eclipse 3.x兼容性模式代码,如PlatformUI.getWorkbench,因此它不能用于纯粹的e4应用程序。

您可以使用非UI p2操作,因为它们不需要兼容模式代码。

+0

谢谢,但在这种情况下如何使用这种兼容模式?我发现至少有四个关于这个主题的不同教程,其中包含完全不同的方法。 – wtfzn

+1

如果你想使用兼容模式代码,你可以编写一个传统的3.x风格的RCP而不是e4 RCP。有些人声称有一个“混合”应用程序的工作,但它是棘手的,我不能建议。 –

+0

因此,不可能编写我的e4样式应用程序,并在此插件中包含3.x插件(如... p2.ui)? – wtfzn

0

查看帮助/安装新软件...菜单的贡献,它似乎由命令org.eclipse.equinox.p2.ui.sdk.install提供。您可以简单地将它添加到您的用户界面或trigger it programmatically,如Eclipse维基中所述?

我不确定这是否工作或期望兼容性层,但它是值得一试。

相关问题