package bndtools.launch.ui.internal;
import org.bndtools.api.ILogger;
import org.bndtools.api.Logger;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.debug.core.IStatusHandler;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import bndtools.perspective.BndPerspective;
public class JUnitViewOpenerStatusHandler implements IStatusHandler {
private static final ILogger logger = Logger.getLogger(JUnitViewOpenerStatusHandler.class);
public Object handleStatus(IStatus status, Object source) throws CoreException {
Runnable runnable = new Runnable() {
public void run() {
try {
IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
window.getActivePage().showView(BndPerspective.VIEW_ID_JUNIT_RESULTS, null, IWorkbenchPage.VIEW_VISIBLE);
} catch (PartInitException e) {
logger.logError("Error showing JUnit Results view", e);
}
}
};
Display display = PlatformUI.getWorkbench().getDisplay();
if (display.getThread() == Thread.currentThread())
runnable.run();
else
display.syncExec(runnable);
return null;
}
}