5
5
import android .view .ViewGroup ;
6
6
7
7
import com .unnamed .b .atv .R ;
8
+ import com .unnamed .b .atv .view .AndroidTreeView ;
8
9
import com .unnamed .b .atv .view .TreeNodeWrapperView ;
9
10
10
11
import java .util .ArrayList ;
@@ -21,14 +22,17 @@ public class TreeNode {
21
22
private int mId ;
22
23
private TreeNode mParent ;
23
24
private boolean mSelected ;
25
+ private boolean mSelectable = true ;
24
26
private final List <TreeNode > children ;
25
27
private BaseNodeViewHolder mViewHolder ;
26
28
private TreeNodeClickListener mListener ;
27
29
private Object mValue ;
28
30
private boolean mExpanded ;
29
31
30
32
public static TreeNode root () {
31
- return new TreeNode (null );
33
+ TreeNode root = new TreeNode (null );
34
+ root .setSelectable (false );
35
+ return root ;
32
36
}
33
37
34
38
public TreeNode (Object value ) {
@@ -38,6 +42,7 @@ public TreeNode(Object value) {
38
42
39
43
public TreeNode addChild (TreeNode childNode ) {
40
44
childNode .mParent = this ;
45
+ //TODO think about id generation
41
46
childNode .mId = size ();
42
47
children .add (childNode );
43
48
return this ;
@@ -57,6 +62,16 @@ public TreeNode addChildren(Collection<TreeNode> nodes) {
57
62
return this ;
58
63
}
59
64
65
+ public int deleteChild (TreeNode child ) {
66
+ for (int i = 0 ; i < children .size (); i ++) {
67
+ if (child .mId == children .get (i ).mId ) {
68
+ children .remove (i );
69
+ return i ;
70
+ }
71
+ }
72
+ return -1 ;
73
+ }
74
+
60
75
public List <TreeNode > getChildren () {
61
76
return Collections .unmodifiableList (children );
62
77
}
@@ -95,7 +110,19 @@ public void setSelected(boolean selected) {
95
110
}
96
111
97
112
public boolean isSelected () {
98
- return mSelected ;
113
+ if (mSelectable ) {
114
+ return mSelected ;
115
+ } else {
116
+ return false ;
117
+ }
118
+ }
119
+
120
+ public void setSelectable (boolean selectable ) {
121
+ mSelectable = selectable ;
122
+ }
123
+
124
+ public boolean isSelectable () {
125
+ return mSelectable ;
99
126
}
100
127
101
128
public String getPath () {
@@ -180,6 +207,7 @@ public interface TreeNodeClickListener {
180
207
}
181
208
182
209
public static abstract class BaseNodeViewHolder <E > {
210
+ protected AndroidTreeView tView ;
183
211
protected TreeNode mNode ;
184
212
private View mView ;
185
213
protected int containerStyle ;
@@ -201,6 +229,14 @@ public View getView() {
201
229
return mView ;
202
230
}
203
231
232
+ public void setTreeViev (AndroidTreeView treeViev ) {
233
+ this .tView = treeViev ;
234
+ }
235
+
236
+ public AndroidTreeView getTreeView () {
237
+ return tView ;
238
+ }
239
+
204
240
public void setContainerStyle (int style ) {
205
241
containerStyle = style ;
206
242
}
@@ -213,8 +249,8 @@ public ViewGroup getNodeItemsView() {
213
249
return (ViewGroup ) getView ().findViewById (R .id .node_items );
214
250
}
215
251
216
- public boolean childrenInitialized () {
217
- return getNodeItemsView (). getChildCount () == mNode . size () ;
252
+ public boolean isInitialized () {
253
+ return mView != null ;
218
254
}
219
255
220
256
public int getContainerStyle () {
@@ -228,8 +264,6 @@ public void toggle(boolean active) {
228
264
// empty
229
265
}
230
266
231
- ;
232
-
233
267
public void toggleSelectionMode (boolean editModeEnabled ) {
234
268
// empty
235
269
}
0 commit comments