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

How to inject objects in custom object

我正在实现一个更新函数,它将使用服务器响应来处理更新。现在我的更新需要要求用户(在对话框中)重新启动应用程序。我可以在 class 中做的唯一注入是 IEclipseContext。

现在如何获取当前 运行ning Eclipse RCP 应用程序的 UISynchronize?这样我就可以安全地 运行 这个方法:

private void showMessage(UISynchronize sync, final String message) {
        sync.syncExec(new Runnable() {

            @Override
            public void run() {
                MessageDialog.openInformation(null, "Information", message);
            }
        });
    }

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

UISynchronize 所做的就是调用 Display.asyncExec,所以如果您没有可用的上下文,请使用传统的

Display.getDefault().asyncExec(....)