Browse Source

generics

tags/V1_6_10RC1
aclement 14 years ago
parent
commit
f134b1cde4
1 changed files with 32 additions and 36 deletions
  1. 32
    36
      ajbrowser/src/org/aspectj/tools/ajbrowser/ui/BrowserMessageHandler.java

+ 32
- 36
ajbrowser/src/org/aspectj/tools/ajbrowser/ui/BrowserMessageHandler.java View File

@@ -23,72 +23,68 @@ import org.aspectj.bridge.IMessage;
import org.aspectj.bridge.IMessage.Kind;

/**
* MessageHandler used by AjBrowser that displays ERROR messages with
* exceptions and ABORT messages in an error dialog. Other messages are
* displayed by the MessageHandlerPanel. By default INFO and WEAVEINFO
* messages are ignored.
* MessageHandler used by AjBrowser that displays ERROR messages with exceptions and ABORT messages in an error dialog. Other
* messages are displayed by the MessageHandlerPanel. By default INFO and WEAVEINFO messages are ignored.
*/
public class BrowserMessageHandler implements IUIBuildMessageHandler {

private List ignoring;
private List messages;
private List<IMessage.Kind> ignoring;
private List<IMessage> messages;
public BrowserMessageHandler() {
ignoring = new ArrayList();
messages = new ArrayList();
ignoring = new ArrayList<IMessage.Kind>();
messages = new ArrayList<IMessage>();
ignore(IMessage.INFO);
ignore(IMessage.WEAVEINFO);
}
public boolean handleMessage(IMessage message) throws AbortException {
Kind messageKind = message.getKind();
if (isIgnoring(messageKind)) {
return true;
}
if (messageKind.equals(IMessage.ABORT)
|| (message.getThrown() != null) ) {
String stack = getStackTraceAsString(message.getThrown());
ErrorDialog errorDialog = new ErrorDialog(
Ajde.getDefault().getRootFrame(),
"AJDE Error", message.getThrown(), message.getMessage(), stack);
errorDialog.setVisible(true);
return true;
if (messageKind.equals(IMessage.ABORT) || (message.getThrown() != null)) {
String stack = getStackTraceAsString(message.getThrown());
ErrorDialog errorDialog = new ErrorDialog(Ajde.getDefault().getRootFrame(), "AJDE Error", message.getThrown(),
message.getMessage(), stack);
errorDialog.setVisible(true);
return true;
}
messages.add(message);
return true;
}

public void dontIgnore(Kind kind) {
if (null != kind) {
ignoring.remove(kind);
}
if (null != kind) {
ignoring.remove(kind);
}
}

public boolean isIgnoring(Kind kind) {
return ((null != kind) && (ignoring.contains(kind)));
}
public void ignore(Kind kind) {
if ((null != kind) && (!ignoring.contains(kind))) {
ignoring.add(kind);
}
if ((null != kind) && (!ignoring.contains(kind))) {
ignoring.add(kind);
}
}
public List getMessages() {
public List<IMessage> getMessages() {
return messages;
}

private String getStackTraceAsString(Throwable t) {
StringWriter stringWriter = new StringWriter();
if (t != null) {
t.printStackTrace(new PrintWriter(stringWriter));
return stringWriter.getBuffer().toString();
}
return "<no stack trace available>";
}
private String getStackTraceAsString(Throwable t) {
StringWriter stringWriter = new StringWriter();
if (t != null) {
t.printStackTrace(new PrintWriter(stringWriter));
return stringWriter.getBuffer().toString();
}
return "<no stack trace available>";
}

public void reset() {
messages.clear();
}
}

Loading…
Cancel
Save