1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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 }