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.

Reply via email to