Author: kono
Date: 2011-08-01 15:23:49 -0700 (Mon, 01 Aug 2011)
New Revision: 26348
Modified:
core3/work-swing-impl/trunk/impl/src/main/java/org/cytoscape/work/internal/task/ErrorPanel.java
Log:
fixes #51 Error panel displays all stack traces available from the give
Throwable object. Also, it expands JTree nodes by default.
Modified:
core3/work-swing-impl/trunk/impl/src/main/java/org/cytoscape/work/internal/task/ErrorPanel.java
===================================================================
---
core3/work-swing-impl/trunk/impl/src/main/java/org/cytoscape/work/internal/task/ErrorPanel.java
2011-08-01 22:15:51 UTC (rev 26347)
+++
core3/work-swing-impl/trunk/impl/src/main/java/org/cytoscape/work/internal/task/ErrorPanel.java
2011-08-01 22:23:49 UTC (rev 26348)
@@ -60,6 +60,7 @@
import javax.swing.border.EmptyBorder;
import javax.swing.text.StyledEditorKit;
import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.TreePath;
/**
@@ -125,21 +126,25 @@
/**
* Private Constructor.
- *
- * @param owner Window owner.
- * @param t Throwable Object. May be null.
- * @param userErrorMessage User Readable Error Message. May be null.
- * @param tip Tip for user on how to recover from the error.
May be null.
+ *
+ * @param owner
+ * Window owner.
+ * @param t
+ * Throwable Object. May be null.
+ * @param userErrorMessage
+ * User Readable Error Message. May be null.
+ * @param tip
+ * Tip for user on how to recover from the error. May be
null.
*/
- ErrorPanel(Window owner, Throwable t, String userErrorMessage, String
tip) {
- if (owner == null) {
+ ErrorPanel(final Window owner, final Throwable t, final String
userErrorMessage, final String tip) {
+ if (owner == null)
throw new IllegalArgumentException("owner parameter is
null.");
- }
+
this.owner = owner;
this.t = t;
this.userErrorMessage = userErrorMessage;
- this.tip = tip;
- initUI();
+ this.tip = tip;
+ initUI();
}
/**
@@ -235,28 +240,28 @@
return tipPane;
}
- private void convertThrowable(Throwable exception, DefaultMutableTreeNode
root)
- {
- if (exception == null || exception.getStackTrace() == null)
- return;
+ private void convertThrowable(final Throwable exception,
DefaultMutableTreeNode root) {
+ if (exception == null || exception.getStackTrace() == null)
+ return;
- final String message;
- if (exception.getMessage() != null && exception.getMessage().length()
!= 0)
- message = String.format("%s: %s",
exception.getClass().getName(), exception.getMessage());
- else
- message = exception.getClass().getName();
-
- DefaultMutableTreeNode node = new DefaultMutableTreeNode(message);
- root.add(node);
-
- StackTraceElement[] st = exception.getStackTrace();
- if (st != null)
- for (int i = 0; i < st.length; i++)
- node.add(new DefaultMutableTreeNode(st[i]));
-
- convertThrowable(exception.getCause(), root);
- }
+ final String message;
+ if (exception.getMessage() != null &&
exception.getMessage().length() != 0)
+ message = String.format("%s: %s",
exception.getClass().getName(), exception.getMessage());
+ else
+ message = exception.getClass().getName();
+ final DefaultMutableTreeNode node = new
DefaultMutableTreeNode(message);
+ root.add(node);
+
+ StackTraceElement[] st = exception.getStackTrace();
+ if (st != null)
+ for (int i = 0; i < st.length; i++)
+ node.add(new DefaultMutableTreeNode(st[i]));
+
+ // Dig until the root of this exception.
+ convertThrowable(exception.getCause(), root);
+ }
+
/**
* Creates Center Panel with Error Details.
*
@@ -265,15 +270,18 @@
private JScrollPane createCenterPanel() {
detailsPane = new JScrollPane();
-
DefaultMutableTreeNode root = new DefaultMutableTreeNode();
convertThrowable(t, root);
// Create a JTree Object
- JTree tree = new JTree(root);
+ final JTree tree = new JTree(root);
tree.setRootVisible(false);
// Open all Nodes
- //tree.scrollPathToVisible(new TreePath(current.getPath()));
+ int row = 0;
+ while (row < tree.getRowCount()) {
+ tree.expandRow(row);
+ row++;
+ }
tree.setBorder(new EmptyBorder(4, 10, 10, 10));
detailsPane.setViewportView(tree);
detailsPane.setPreferredSize(new Dimension(10, 150));
--
You received this message because you are subscribed to the Google Groups
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/cytoscape-cvs?hl=en.