KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > openharmonise > him > swing > resourcetree > TreeModel


1 /*
2  * The contents of this file are subject to the
3  * Mozilla Public License Version 1.1 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at http://www.mozilla.org/MPL/
6  *
7  * Software distributed under the License is distributed on an "AS IS"
8  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
9  * See the License for the specific language governing rights and
10  * limitations under the License.
11  *
12  * The Initial Developer of the Original Code is Simulacra Media Ltd.
13  * Portions created by Simulacra Media Ltd are Copyright (C) Simulacra Media Ltd, 2004.
14  *
15  * All Rights Reserved.
16  *
17  * Contributor(s):
18  */

19 package org.openharmonise.him.swing.resourcetree;
20
21 import java.util.*;
22 import java.util.ArrayList JavaDoc;
23
24 import javax.swing.tree.*;
25 import javax.swing.tree.DefaultTreeModel JavaDoc;
26 import javax.swing.tree.TreeNode JavaDoc;
27
28 /**
29  * Data model for resource trees.
30  *
31  * @author Matthew Large
32  * @version $Revision: 1.1 $
33  *
34  */

35 public class TreeModel extends DefaultTreeModel JavaDoc {
36
37     /**
38      * Constructs a new tree model.
39      *
40      * @param root Root node
41      */

42     public TreeModel(TreeNode root) {
43         super(root);
44     }
45
46     /**
47      * Constructs a new tree model.
48      *
49      * @param root Root node
50      * @param asksAllowsChildren false if any node can have children, true if each node is asked to see if it can have children
51      */

52     public TreeModel(TreeNode root, boolean asksAllowsChildren) {
53         super(root, asksAllowsChildren);
54     }
55     
56     
57
58     /* (non-Javadoc)
59      * @see javax.swing.tree.DefaultTreeModel#fireTreeNodesChanged(java.lang.Object, java.lang.Object[], int[], java.lang.Object[])
60      */

61     protected void fireTreeNodesChanged(
62         Object JavaDoc arg0,
63         Object JavaDoc[] arg1,
64         int[] arg2,
65         Object JavaDoc[] arg3) {
66         super.fireTreeNodesChanged(arg0, arg1, arg2, arg3);
67     }
68
69     /* (non-Javadoc)
70      * @see javax.swing.tree.DefaultTreeModel#fireTreeNodesInserted(java.lang.Object, java.lang.Object[], int[], java.lang.Object[])
71      */

72     protected void fireTreeNodesInserted(
73         Object JavaDoc arg0,
74         Object JavaDoc[] arg1,
75         int[] arg2,
76         Object JavaDoc[] arg3) {
77         super.fireTreeNodesInserted(arg0, arg1, arg2, arg3);
78     }
79
80     /* (non-Javadoc)
81      * @see javax.swing.tree.DefaultTreeModel#fireTreeNodesRemoved(java.lang.Object, java.lang.Object[], int[], java.lang.Object[])
82      */

83     protected void fireTreeNodesRemoved(
84         Object JavaDoc arg0,
85         Object JavaDoc[] arg1,
86         int[] arg2,
87         Object JavaDoc[] arg3) {
88         super.fireTreeNodesRemoved(arg0, arg1, arg2, arg3);
89     }
90
91     /* (non-Javadoc)
92      * @see javax.swing.tree.DefaultTreeModel#fireTreeStructureChanged(java.lang.Object, java.lang.Object[], int[], java.lang.Object[])
93      */

94     public void fireTreeStructureChanged(
95         Object JavaDoc arg0,
96         Object JavaDoc[] arg1,
97         int[] arg2,
98         Object JavaDoc[] arg3) {
99         super.fireTreeStructureChanged(arg0, arg1, arg2, arg3);
100     }
101     
102     /**
103      * Returns the tree path for a given full path.
104      *
105      * @param sPath Full path
106      * @return Tree path
107      */

108     public TreePath getTreePath(String JavaDoc sPath) {
109         TreePath tPath = null;
110         ArrayList JavaDoc nodes = new ArrayList JavaDoc();
111         
112         DefaultMutableTreeNode root = (DefaultMutableTreeNode) this.getRoot();
113         
114         nodes.add(root);
115         
116         DefaultMutableTreeNode currNode = null;
117         
118         Enumeration children = root.children();
119         
120         while (children != null && children.hasMoreElements()) {
121             org.openharmonise.him.swing.resourcetree.TreeNode child = (org.openharmonise.him.swing.resourcetree.TreeNode) children.nextElement();
122             
123             String JavaDoc sTempPath = child.getFilePath();
124             
125             if(sPath.startsWith(sTempPath)) {
126                 nodes.add(child);
127                 
128                 if(child.isLeaf() == false) {
129                     children = child.children();
130                 } else {
131                     children = null;
132                 }
133                 
134             }
135         }
136         
137         DefaultMutableTreeNode[] pathArray = (DefaultMutableTreeNode[]) nodes.toArray(new DefaultMutableTreeNode[nodes.size()]);
138         
139         tPath = new TreePath(pathArray);
140         
141         return tPath;
142     }
143
144 }
145
Popular Tags