在我们的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搜索找到解决方案。有人解决了这个问题吗?
答案 0 :(得分:0)
e4目前没有无头,所以没有真正的等价物。
要访问Display
,您可以使用
Display.getDefault()
随处可见。
如果您有一个源自SWT Control
的课程,您也可以使用Control.getDisplay()
如果您想使用asyncExec
的{{1}}或syncExec
方法,可以使用Display
替代:
UISynchronize