用户信息显示的好方法是什么

时间:2014-11-30 16:15:17

标签: eclipse-rcp e4

我想知道在消息来自EventBroker时向最终用户显示消息(即错误,警告,信息)的简洁方法。 目前我正在使用隐藏部分,它以这种方式处理enventBroker消息:

/**
 * Handle the {@link EventTopics#ERROR_OCCURED} topic. Displays a simple
 * error dialog.
 * 
 * @param userDialogDescriptor
 * @param shell
 */
@Inject
@Optional
private void notifyUserForError(
        @UIEventTopic(EventTopics.ERROR_OCCURED) UserDialogDescriptor userDialogDescriptor,
        @Named(IServiceConstants.ACTIVE_SHELL) Shell shell) {

    IStatus status = new Status(IStatus.ERROR, Activator.ID,
            userDialogDescriptor.getReason());
    ErrorDialog.openError(shell, "Error",
            userDialogDescriptor.getConsequence(), status);
}

是否有可能以更干净的方式触发消息显示(和Shell抓取),而不使用“假”和隐藏部分?

我尝试使用@UIEventTopic注释编写一个更简单的处理程序,但没有成功。

1 个答案:

答案 0 :(得分:2)

您可以使用StatusReporterorg.eclipse.e4.core.services.statusreporter.StatusReporter)在任何地方报告错误,而无需发送消息:

@Inject
StatusReporter reporter;

...


reporter.show(IStatus.ERROR, "message", any associated exception);

您还可以使用状态记录器记录并显示错误:

IStatus status = new Status(....);

reporter.report(status, StatusReporter.LOG | StatusReporter.SHOW);