org.aspectj.tools.ajbrowser.core.BrowserErrorHandler Maven / Gradle / Ivy
/********************************************************************
* Copyright (c) 2007 Contributors. All rights reserved.
* This program and the accompanying materials are made available
* under the terms of the Eclipse Public License v1.0
* which accompanies this distribution and is available at
* http://eclipse.org/legal/epl-v10.html
*
* Contributors: IBM Corporation - initial API and implementation
* Helen Hawkins - initial version (bug 148190)
*******************************************************************/
package org.aspectj.tools.ajbrowser.core;
import java.io.PrintWriter;
import java.io.StringWriter;
import javax.swing.JOptionPane;
import org.aspectj.ajde.Ajde;
import org.aspectj.ajde.ui.swing.ErrorDialog;
import org.aspectj.tools.ajbrowser.BrowserManager;
/**
* Error handler used by AjBrowser. Handles errors and warnings by
* producing an error/warning dialog.
*/
public class BrowserErrorHandler {
public static void handleWarning(String message) {
JOptionPane.showMessageDialog(BrowserManager.getDefault()
.getRootFrame(), message, "AJBrowser Warning",
JOptionPane.WARNING_MESSAGE);
}
public static void handleError(String errorMessage) {
handleError(errorMessage, null);
}
public static void handleError(String message, Throwable t) {
String stack = getStackTraceAsString(t);
ErrorDialog errorDialog = new ErrorDialog(Ajde.getDefault()
.getRootFrame(), "AJBrowser Error", t, message, stack);
errorDialog.setVisible(true);
}
private static String getStackTraceAsString(Throwable t) {
StringWriter stringWriter = new StringWriter();
if (t != null) {
t.printStackTrace(new PrintWriter(stringWriter));
return stringWriter.getBuffer().toString();
}
return "";
}
}