package org.erlide.ui;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.MultiStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.ui.progress.UIJob;
import org.eclipse.ui.statushandlers.StatusManager;
import org.erlide.util.ErlideMessage;
import com.google.common.eventbus.Subscribe;
public class UIMessageReporter {
@Subscribe
public void displayMessage(final ErlideMessage emsg) {
try {
new UIJob("erlide message") {
@Override
public IStatus runInUIThread(final IProgressMonitor monitor) {
final MultiStatus msg = new MultiStatus("org.erlide.ui", 0,
emsg.getMessage(), null);
if (emsg.getDetails() != null) {
msg.add(new Status(emsg.getSeverity(), "org.erlide.ui",
emsg.getDetails()));
}
StatusManager.getManager().handle(msg, StatusManager.BLOCK);
return Status.OK_STATUS;
}
}.schedule();
} catch (final IllegalStateException e) {
}
}
}