我实现了一个更新功能,它将使用服务器响应来处理更新。现在我的更新需要让用户(在对话框中)重新启动应用程序。我可以在类中唯一注入的是IEclipseContext。
现在我如何获得当前运行的Eclipse RCP应用程序的UISynchronize?所以我可以安全地运行这个方法:
private void showMessage(UISynchronize sync, final String message) {
sync.syncExec(new Runnable() {
@Override
public void run() {
MessageDialog.openInformation(null, "Information", message);
}
});
}
答案 0 :(得分:2)
IEclipseContext
位于应用程序UISynchronize
中,因此除了OSGi服务上下文之外,它将在任何上下文中可用。
Display.asyncExec
所做的就是致电Display.getDefault().asyncExec(....)
,所以如果您还没有上下文,请使用传统的
{{1}}