diff options
author | wisberg <wisberg> | 2003-04-30 02:37:39 +0000 |
---|---|---|
committer | wisberg <wisberg> | 2003-04-30 02:37:39 +0000 |
commit | fa2ef1c63f5ace1c92e2590b78d3e22bc3826007 (patch) | |
tree | c424f3c0bcf8f1162ceb1a7d60336338ddbaa10a | |
parent | 30d1db184fd47c74014b1b87fc95e2d950d00c54 (diff) | |
download | aspectj-fa2ef1c63f5ace1c92e2590b78d3e22bc3826007.tar.gz aspectj-fa2ef1c63f5ace1c92e2590b78d3e22bc3826007.zip |
- IMessage-based compiler messages
include the stack trace as tooltip text if there
is an associated exception
-rw-r--r-- | ajde/src/org/aspectj/ajde/ui/swing/CompilerMessagesCellRenderer.java | 34 |
1 files changed, 25 insertions, 9 deletions
diff --git a/ajde/src/org/aspectj/ajde/ui/swing/CompilerMessagesCellRenderer.java b/ajde/src/org/aspectj/ajde/ui/swing/CompilerMessagesCellRenderer.java index a1a47a169..809c9cc82 100644 --- a/ajde/src/org/aspectj/ajde/ui/swing/CompilerMessagesCellRenderer.java +++ b/ajde/src/org/aspectj/ajde/ui/swing/CompilerMessagesCellRenderer.java @@ -21,6 +21,7 @@ import javax.swing.JList; import javax.swing.ListCellRenderer; import org.aspectj.bridge.IMessage; +import org.aspectj.util.LangUtil; /** * @author Mik Kersten @@ -33,18 +34,30 @@ public class CompilerMessagesCellRenderer extends JLabel implements ListCellRend int index, boolean isSelected, boolean cellHasFocus) { - if (value != null) { - setText(value.toString()); - } else { - setText(""); - } - IMessage.Kind kind = ((CompilerMessage)value).kind; + String label = "<no message>"; + String detail = null; + IMessage.Kind kind = IMessage.INFO; + if (value instanceof CompilerMessage) { + CompilerMessage cm = (CompilerMessage) value; + label = cm.message.getMessage(); + if (LangUtil.isEmpty(label)) { + label = cm.message.toString(); + } + kind = cm.message.getKind(); + Throwable thrown = cm.message.getThrown(); + if (null != thrown) { + detail = LangUtil.renderException(thrown); + } + } else if (null != value) { + label = value.toString(); + } + setText(label); if (kind.equals(IMessage.WARNING)) { setIcon(AjdeUIManager.getDefault().getIconRegistry().getWarningIcon()); - } else if (kind.equals(IMessage.INFO)) { - setIcon(null); + } else if (IMessage.ERROR.isSameOrLessThan(kind)) { + setIcon(AjdeUIManager.getDefault().getIconRegistry().getErrorIcon()); } else { - setIcon(AjdeUIManager.getDefault().getIconRegistry().getErrorIcon()); + setIcon(null); } if (isSelected) { setBackground(list.getSelectionBackground()); @@ -56,6 +69,9 @@ public class CompilerMessagesCellRenderer extends JLabel implements ListCellRend setEnabled(list.isEnabled()); setFont(list.getFont()); setOpaque(true); + if (null != detail) { + setToolTipText(detail); + } return this; } } |