KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > junit > output > ResultTreeView


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.modules.junit.output;
21
22 import java.awt.Component JavaDoc;
23 import java.awt.EventQueue JavaDoc;
24 import javax.accessibility.AccessibleContext JavaDoc;
25 import javax.swing.JTree JavaDoc;
26 import javax.swing.tree.TreeCellRenderer JavaDoc;
27 import javax.swing.tree.TreeNode JavaDoc;
28 import org.openide.awt.HtmlRenderer;
29 import org.openide.explorer.view.BeanTreeView;
30 import org.openide.nodes.Node;
31 import org.openide.util.NbBundle;
32
33
34 /**
35  *
36  * @author Marian Petras
37  */

38 final class ResultTreeView extends BeanTreeView implements Runnable JavaDoc {
39
40     /** */
41     private final TreeCellRenderer JavaDoc defaultTreeCellRenderer;
42     /** */
43     private final TreeCellRenderer JavaDoc noIconTreeCellRenderer;
44     
45     /** Creates a new instance of ResultTree */
46     ResultTreeView() {
47         super();
48         defaultTreeCellRenderer = tree.getCellRenderer();
49         noIconTreeCellRenderer = createNoIconTreeCellRenderer();
50         tree.setCellRenderer(new DelegatingTreeCellRenderer());
51         
52         initAccessibility();
53     }
54     
55     /**
56      */

57     private void initAccessibility() {
58         AccessibleContext JavaDoc accessibleContext = tree.getAccessibleContext();
59         accessibleContext.setAccessibleName(
60               NbBundle.getMessage(getClass(), "ACSN_ResultPanelTree")); //NOI18N
61
accessibleContext.setAccessibleDescription(
62               NbBundle.getMessage(getClass(), "ACSD_ResultPanelTree")); //NOI18N
63
}
64     
65     /**
66      *
67      */

68     private final class DelegatingTreeCellRenderer implements TreeCellRenderer JavaDoc {
69
70         public Component JavaDoc getTreeCellRendererComponent(JTree JavaDoc tree,
71                                                       Object JavaDoc value,
72                                                       boolean selected,
73                                                       boolean expanded,
74                                                       boolean leaf,
75                                                       int row,
76                                                       boolean hasFocus) {
77             boolean isResultRootNode =
78                             (value instanceof TreeNode JavaDoc)
79                             && (((TreeNode JavaDoc) value).getParent() == null);
80             TreeCellRenderer JavaDoc renderer = isResultRootNode
81                                         ? noIconTreeCellRenderer
82                                         : defaultTreeCellRenderer;
83             return renderer.getTreeCellRendererComponent(
84                     tree, value, selected, expanded, leaf, row, hasFocus);
85         }
86
87     }
88     
89     /**
90      */

91     private TreeCellRenderer JavaDoc createNoIconTreeCellRenderer() {
92         HtmlRenderer.Renderer renderer = HtmlRenderer.createRenderer();
93         renderer.setHtml(false);
94         renderer.setIcon(null);
95         renderer.setIconTextGap(0);
96         renderer.setIndent(2);
97         return renderer;
98     }
99     
100     /**
101      */

102     void expandReportNode(TestsuiteNode node) {
103         final boolean wasScrollsOnExpand = tree.getScrollsOnExpand();
104         
105         tree.setScrollsOnExpand(false);
106         try {
107             expandNode(node);
108         } finally {
109             if (wasScrollsOnExpand) {
110                 
111                 /*
112                  * We must post the scrolling-enabling routine to the end of the
113                  * event queue, after all the requests for expansion of nodes:
114                  */

115                 EventQueue.invokeLater(this);
116             }
117         }
118     }
119     
120     /**
121      */

122     public void run() {
123         tree.setScrollsOnExpand(true);
124     }
125     
126 }
127
Popular Tags