View Javadoc

1   /*
2    * JDiskCatalog
3    *
4    * Copyright 2007 Przemek Więch
5    *
6    * This file is part of JDiskCatalog.
7    *
8    * JDiskCatalog is free software; you can redistribute it and/or modify
9    * it under the terms of the GNU General Public License as published by
10   * the Free Software Foundation; either version 2 of the License, or
11   * (at your option) any later version.
12   *
13   * This program is distributed in the hope that it will be useful,
14   * but WITHOUT ANY WARRANTY; without even the implied warranty of
15   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16   * GNU General Public License for more details.
17  
18   * You should have received a copy of the GNU General Public License
19   * along with this program; if not, write to the Free Software
20   * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
21   */
22  
23  package net.sf.jdiskcatalog.model;
24  
25  import java.util.ArrayList;
26  import java.util.Enumeration;
27  import java.util.List;
28  
29  import javax.swing.tree.DefaultMutableTreeNode;
30  import javax.swing.tree.MutableTreeNode;
31  
32  import net.sf.jdiskcatalog.api.Node;
33  import net.sf.jdiskcatalog.api.NodeInfo;
34  
35  
36  public class NodeImpl extends DefaultMutableTreeNode implements Node
37  {
38  	public NodeImpl(String name, NodeInfo.Type type)
39  	{
40  		this(new NodeInfoImpl(name, type));
41  	}
42  
43  	public NodeImpl(NodeInfo nodeInfo)
44  	{
45  		super(nodeInfo);
46  	}
47  
48  	public NodeInfo getNodeInfo()
49  	{
50  		return (NodeInfo)getUserObject();
51  	}
52  
53  	public void add(Node node)
54  	{
55  		add((MutableTreeNode) node);
56  	}
57  
58      @Override
59  	public Enumeration children()
60      {
61      	Enumeration children = super.children();
62  
63      	return children;
64      }
65  	public List<Node> getChildren()
66  	{
67  		List<Node> list = new ArrayList<Node>();
68  		Enumeration e = children();
69  		while (e.hasMoreElements())
70  			list.add((Node)e.nextElement());
71  		return list;
72  	}
73  
74  	public boolean hasChildren()
75  	{
76  		return super.getChildCount() > 0;
77  	}
78  
79  	public Node getParentNode()
80  	{
81  		return (Node)super.getParent();
82  	}
83  
84  	public Node getChild(String name)
85  	{
86  		Enumeration e = children();
87  		while (e.hasMoreElements())
88  		{
89  			Node node = (Node)e.nextElement();
90  			if (node.getNodeInfo().getName().equals(name))
91  				return node;
92  		}
93  		return null;
94  	}
95  }