迁移到E4 - 相当于PlatformUI.isWorkbenchRunning

时间:2015-02-12 13:18:12

标签: eclipse eclipse-rcp rcp e4

在我们的Eclipse RCP 3.7应用程序中,我们对PlatformUI.isWorkbenchRunning()进行了大量调用。 例如,大多数调用是围绕Workbench API调用的保护 `

if (PlatformUI.isWorkbenchRunning()) {
    display = PlatformUI.getWorkbench().getDisplay();
} else {
    display = Display.getDefault();
}

我们现在正在迁移到Eclipse RCP 4.4,但我找不到用RCP 4兼容代码替换这些调用的正确方法。

我猜我应该注入一些服务/组件并使用它,但是哪个组件? IWorkbench无法告诉我它是否正在运行。

我希望这是一个非常常见的问题,但是无法通过Google搜索找到解决方案。有人解决了这个问题吗?

1 个答案:

答案 0 :(得分:0)

e4目前没有无头,所以没有真正的等价物。

要访问Display,您可以使用

Display.getDefault()

随处可见。

如果您有一个源自SWT Control的课程,您也可以使用Control.getDisplay()

如果您想使用asyncExec的{​​{1}}或syncExec方法,可以使用Display替代:

UISynchronize