1 2 25 26 27 package org.aspectj.ajde.ui.swing; 28 29 import java.awt.*; 30 import java.awt.event.*; 31 import javax.swing.*; 32 import java.io.*; 33 import org.aspectj.ajde.*; 34 35 public class AjdeErrorHandler implements ErrorHandler { 36 37 public void handleWarning(String message) { 38 JOptionPane.showMessageDialog(AjdeUIManager.getDefault().getRootFrame(), 39 message, 40 "AJDE Warning", 41 JOptionPane.WARNING_MESSAGE); 42 } 43 44 public void handleError(String errorMessage) { 45 handleError(errorMessage, null); 46 } 47 48 public void handleError(String message, Throwable t) { 49 String stack = getStackTraceAsString(t); 50 Ajde.getDefault().logEvent("Error: " + stack); 51 ErrorDialog errorDialog = new ErrorDialog(AjdeUIManager.getDefault().getRootFrame(), "AJDE Error", t, message, stack); 52 errorDialog.setVisible(true); 53 } 54 55 private String getStackTraceAsString(Throwable t) { 56 StringWriter stringWriter = new StringWriter(); 57 if (t != null) { 58 t.printStackTrace(new PrintWriter(stringWriter)); 59 return stringWriter.getBuffer().toString(); 60 } else { 61 return "<no stack trace available>"; 62 } 63 } 64 } 65 66 | Popular Tags |