KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sourceforge > pmd > util > viewer > model > SimpleNodeTreeNodeAdapter


1 package net.sourceforge.pmd.util.viewer.model;
2
3
4 import net.sourceforge.pmd.ast.SimpleNode;
5
6 import javax.swing.tree.TreeNode JavaDoc;
7 import java.util.ArrayList JavaDoc;
8 import java.util.Collections JavaDoc;
9 import java.util.Enumeration JavaDoc;
10 import java.util.List JavaDoc;
11
12
13 /**
14  * provides the adapter for the tree model
15  *
16  * @author Boris Gruschko ( boris at gruschko.org )
17  * @version $Id: SimpleNodeTreeNodeAdapter.java,v 1.10 2006/10/20 02:40:14 hooperbloob Exp $
18  */

19
20 public class SimpleNodeTreeNodeAdapter implements TreeNode JavaDoc {
21     
22     private SimpleNode node;
23     private List JavaDoc children;
24     private SimpleNodeTreeNodeAdapter parent;
25
26     /**
27      * constructs the node
28      *
29      * @param node underlying AST's node
30      */

31     public SimpleNodeTreeNodeAdapter(SimpleNodeTreeNodeAdapter parent, SimpleNode node) {
32         this.parent = parent;
33         this.node = node;
34     }
35
36     /**
37      * retrieves the underlying node
38      *
39      * @return AST node
40      */

41     public SimpleNode getSimpleNode() {
42         return node;
43     }
44
45
46     /**
47      * @see javax.swing.tree.TreeNode#getChildAt(int)
48      */

49     public TreeNode JavaDoc getChildAt(int childIndex) {
50         checkChildren();
51         return (TreeNode JavaDoc) children.get(childIndex);
52     }
53
54
55     /**
56      * @see javax.swing.tree.TreeNode#getChildCount()
57      */

58     public int getChildCount() {
59         checkChildren();
60         return children.size();
61     }
62
63
64     /**
65      * @see javax.swing.tree.TreeNode#getParent()
66      */

67     public TreeNode JavaDoc getParent() {
68         return parent;
69     }
70
71     /**
72      * @see javax.swing.tree.TreeNode#getIndex(javax.swing.tree.TreeNode)
73      */

74     public int getIndex(TreeNode JavaDoc node) {
75         checkChildren();
76         return children.indexOf(node);
77     }
78
79
80     /**
81      * @see javax.swing.tree.TreeNode#getAllowsChildren()
82      */

83     public boolean getAllowsChildren() {
84         return true;
85     }
86
87
88     /**
89      * @see javax.swing.tree.TreeNode#isLeaf()
90      */

91
92     public boolean isLeaf() {
93         checkChildren();
94         return children.isEmpty();
95     }
96
97
98     /**
99      * @see javax.swing.tree.TreeNode#children()
100      */

101
102     public Enumeration JavaDoc children() {
103         return Collections.enumeration(children);
104     }
105
106
107     /**
108      * checks the children and creates them if neccessary
109      */

110     private void checkChildren() {
111         if (children == null) {
112             children = new ArrayList JavaDoc(node.jjtGetNumChildren());
113             for (int i = 0; i < node.jjtGetNumChildren(); i++) {
114                 children.add(new SimpleNodeTreeNodeAdapter(this, (SimpleNode) node.jjtGetChild(i)));
115             }
116         }
117     }
118
119     /**
120      * @see java.lang.Object#toString()
121      */

122     public String JavaDoc toString() {
123         return node.toString();
124     }
125 }
126
127
Popular Tags