KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > genimen > djeneric > tools > console > nodes > CustomTreeNode


1 /*
2  * Copyright (c) 2001-2005 by Genimen BV (www.genimen.com) All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, is permitted
5  * provided that the following conditions are met:
6  * - Redistributions of source code must retain the above copyright notice, this list of conditions
7  * and the following disclaimer.
8  * - Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * - All advertising materials mentioning features or use of this software must display the
12  * following acknowledgment: "This product includes Djeneric."
13  * - Products derived from this software may not be called "Djeneric" nor may
14  * "Djeneric" appear in their names without prior written permission of Genimen BV.
15  * - Redistributions of any form whatsoever must retain the following acknowledgment: "This
16  * product includes Djeneric."
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS IS"
19  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21  * ARE DISCLAIMED. IN NO EVENT SHALL GENIMEN BV, DJENERIC.ORG,
22  * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  */

30 package com.genimen.djeneric.tools.console.nodes;
31
32 import java.net.URL JavaDoc;
33
34 import javax.swing.ImageIcon JavaDoc;
35 import javax.swing.JTree JavaDoc;
36 import javax.swing.RepaintManager JavaDoc;
37 import javax.swing.tree.DefaultMutableTreeNode JavaDoc;
38 import javax.swing.tree.DefaultTreeModel JavaDoc;
39
40 public abstract class CustomTreeNode extends DefaultMutableTreeNode JavaDoc
41 {
42   public boolean _alreadyLoaded = false;
43   protected JTree JavaDoc _tree;
44   protected DefaultTreeModel JavaDoc _treeModel;
45
46   private CustomTreeNode _parent = null;
47
48   public CustomTreeNode()
49   {
50     _tree = null;
51     _treeModel = null;
52   }
53
54   public CustomTreeNode(JTree JavaDoc theTree, DefaultTreeModel JavaDoc theModel)
55   {
56     _tree = theTree;
57     _treeModel = theModel;
58   }
59
60   public JTree JavaDoc getTree()
61   {
62     return _tree;
63   }
64
65   public DefaultTreeModel JavaDoc getModel()
66   {
67     return _treeModel;
68   }
69
70   public ImageIcon JavaDoc getImageIcon()
71   {
72     return (getImageIcon("images/root.gif"));
73   }
74
75   public CustomTreeNode getParentCustomTreeNode()
76   {
77     return _parent;
78   }
79
80   public void insertAsChild(CustomTreeNode node)
81   {
82     _treeModel.insertNodeInto(node, this, getChildCount());
83     node._parent = this;
84   }
85
86   public void insertAsFolder(CustomTreeNode node)
87   {
88     _treeModel.insertNodeInto(node, this, getChildCount());
89     _treeModel.insertNodeInto(new DefaultMutableTreeNode JavaDoc(), node, 0);
90     node._parent = this;
91   }
92
93   public void insertAsSibling(CustomTreeNode node)
94   {
95     _treeModel.insertNodeInto(node, parent, parent.getChildCount());
96     node._parent = _parent;
97   }
98
99   public void removeFromTree()
100   {
101     _treeModel.removeNodeFromParent(this);
102   }
103
104   public String JavaDoc toString()
105   {
106     return "New CustomTreeNode";
107   }
108
109   public String JavaDoc getDetailDescription()
110   {
111     return "";
112   }
113
114   public void expandNode() throws Exception JavaDoc
115   {
116   }
117
118   public void reload() throws Exception JavaDoc
119   {
120     _alreadyLoaded = false;
121     expandNode();
122   }
123
124   public void repaintTree()
125   {
126     RepaintManager JavaDoc rm = RepaintManager.currentManager(_tree);
127     if (rm != null)
128     {
129       rm.validateInvalidComponents();
130       rm.paintDirtyRegions();
131     }
132   }
133
134   public void reloadParent() throws Exception JavaDoc
135   {
136     CustomTreeNode p = getParentCustomTreeNode();
137     if (p != null) p.reload();
138   }
139
140   public static ImageIcon JavaDoc getImageIcon(String JavaDoc fileName)
141   {
142     URL JavaDoc url = CustomTreeNode.class.getResource(fileName);
143     if (url != null) return new ImageIcon JavaDoc(url);
144     else return new ImageIcon JavaDoc("");
145     // Default to empty image
146
}
147
148 }
Popular Tags