0
|
1 package treecms.proto.simple;
|
|
2
|
|
3 import java.util.Iterator;
|
28
|
4
|
27
|
5 import java.util.Collections;
|
0
|
6 import java.util.LinkedList;
|
|
7 import java.util.List;
|
20
|
8 import treecms.proto.api.Node;
|
25
|
9 import treecms.proto.api.NodeID;
|
27
|
10 import treecms.proto.id.IncrementalNodeID;
|
0
|
11
|
20
|
12 public class SimpleNode implements Node
|
0
|
13 {
|
26
|
14 private LinkedList<Node> m_children;
|
0
|
15
|
25
|
16 private NodeID m_id;
|
28
|
17 private String m_title,m_class;
|
0
|
18
|
27
|
19 public SimpleNode()
|
0
|
20 {
|
26
|
21 m_children = new LinkedList<Node>();
|
27
|
22
|
|
23 m_id = new IncrementalNodeID();
|
28
|
24 m_title = "";
|
|
25 m_class = "";
|
27
|
26 }
|
|
27
|
|
28 private SimpleNode(NodeID _id)
|
|
29 {
|
|
30 m_children = new LinkedList<Node>();
|
7
|
31
|
25
|
32 m_id = _id;
|
28
|
33 m_title = "";
|
|
34 m_class = "";
|
0
|
35 }
|
|
36
|
|
37 @Override
|
27
|
38 public List<Node> getChildren()
|
0
|
39 {
|
|
40 // TODO Auto-generated method stub
|
27
|
41 // return unmodifiable list<node>
|
|
42 return Collections.unmodifiableList(m_children);
|
0
|
43 }
|
|
44
|
|
45 @Override
|
28
|
46 public boolean isChild(Node _child)
|
|
47 {
|
0
|
48 // TODO Auto-generated method stub
|
26
|
49 return m_children.contains(_child);
|
0
|
50 }
|
|
51
|
|
52 @Override
|
28
|
53 public Node addChild(Node _child)
|
|
54 {
|
0
|
55 // TODO Auto-generated method stub
|
28
|
56 if(m_children.contains(_child)){
|
|
57 throw new IllegalArgumentException("the node already contains "+_child.getTitle()+":"+_child.getID());
|
|
58 }
|
|
59 m_children.add(_child);
|
|
60 return _child;
|
0
|
61 }
|
|
62
|
|
63 @Override
|
28
|
64 public boolean removeChild(Node _child)
|
|
65 {
|
0
|
66 // TODO Auto-generated method stub
|
28
|
67 return m_children.remove(_child);
|
0
|
68 }
|
|
69
|
|
70 @Override
|
28
|
71 public void up(Node _child)
|
|
72 {
|
0
|
73 // TODO Auto-generated method stub
|
26
|
74 int curPos = m_children.indexOf(_child);
|
0
|
75 if(curPos - 1 > 0){
|
26
|
76 m_children.add(curPos - 1,m_children.remove(curPos));
|
0
|
77 }
|
|
78 }
|
|
79
|
|
80 @Override
|
28
|
81 public void down(Node _child)
|
|
82 {
|
0
|
83 // TODO Auto-generated method stub
|
26
|
84 int curPos = m_children.indexOf(_child);
|
|
85 if(curPos + 1 < m_children.size()){
|
|
86 m_children.add(curPos + 1,m_children.remove(curPos));
|
0
|
87 }
|
|
88 }
|
|
89
|
|
90 @Override
|
28
|
91 public Iterator<Node> iterator()
|
|
92 {
|
0
|
93 // TODO Auto-generated method stub
|
27
|
94 // return unmodifiable iterator
|
|
95 return Collections.unmodifiableList(m_children).iterator();
|
0
|
96 }
|
21
|
97
|
23
|
98 @Override
|
25
|
99 public NodeID getID()
|
21
|
100 {
|
25
|
101 return this.m_id;
|
21
|
102 }
|
0
|
103
|
28
|
104 public void addChildren(List<Node> _children)
|
|
105 {
|
26
|
106 // TODO Auto-generated method stub
|
|
107 this.m_children.addAll(_children);
|
|
108 }
|
27
|
109
|
|
110
|
|
111 @Override
|
|
112 public Node cloneNode()
|
|
113 {
|
|
114 // TODO Auto-generated method stub
|
|
115 SimpleNode clone = new SimpleNode(m_id.update());
|
28
|
116 clone.setTitle(getTitle());
|
|
117 clone.setClassName(getClassName());
|
|
118 clone.addChildren(m_children);
|
27
|
119 return clone;
|
|
120 }
|
|
121
|
|
122 @Override
|
28
|
123 public String getTitle()
|
27
|
124 {
|
|
125 // TODO Auto-generated method stub
|
28
|
126 return m_title;
|
|
127 }
|
|
128
|
|
129 @Override
|
|
130 public void setTitle(String _title)
|
|
131 {
|
|
132 // TODO Auto-generated method stub
|
|
133 m_title = _title;
|
27
|
134 }
|
|
135
|
|
136 @Override
|
28
|
137 public String getClassName()
|
27
|
138 {
|
|
139 // TODO Auto-generated method stub
|
28
|
140 return m_class;
|
|
141 }
|
|
142
|
|
143 @Override
|
|
144 public void setClassName(String _class)
|
|
145 {
|
|
146 // TODO Auto-generated method stub
|
|
147 m_class = _class;
|
27
|
148 }
|
0
|
149 }
|