如何在自定义对象中注入对象

时间:2017-02-02 08:20:43

标签: java eclipse-rcp e4

我实现了一个更新功能,它将使用服务器响应来处理更新。现在我的更新需要让用户(在对话框中)重新启动应用程序。我可以在类中唯一注入的是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);
            }
        });
    }

1 个答案:

答案 0 :(得分:2)

IEclipseContext位于应用程序UISynchronize中,因此除了OSGi服务上下文之外,它将在任何上下文中可用。

Display.asyncExec所做的就是致电Display.getDefault().asyncExec(....) ,所以如果您还没有上下文,请使用传统的

{{1}}