Mercurial > dive4elements > river
comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/DatacageWindow.java @ 574:3629d36f0e5d
Alloc TreeNode arrays with the right size because its known.
flys-client/trunk@2138 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Thu, 16 Jun 2011 15:57:20 +0000 |
parents | f33af25b7490 |
children | 78907f0fb939 |
comparison
equal
deleted
inserted
replaced
573:756bd8f0b97c | 574:3629d36f0e5d |
---|---|
99 } | 99 } |
100 }); | 100 }); |
101 } | 101 } |
102 | 102 |
103 protected void buildTree(DataCageTree tree) { | 103 protected void buildTree(DataCageTree tree) { |
104 treeGrid.setData(convert(tree)); | 104 treeGrid.setData(convertTree(tree)); |
105 } | 105 } |
106 | 106 |
107 protected static TreeNode convert(DataCageNode node) { | 107 protected static TreeNode convert(DataCageNode node) { |
108 List<DataCageNode> children = node.getChildren(); | 108 List<DataCageNode> children = node.getChildren(); |
109 | 109 |
110 TreeNode [] cs; | 110 TreeNode [] cs; |
111 | 111 |
112 if (children != null) { | 112 if (children != null) { |
113 ArrayList<TreeNode> nc = new ArrayList<TreeNode>(children.size()); | 113 cs = new TreeNode[children.size()]; |
114 | 114 |
115 for (DataCageNode dcn: children) { | 115 for (int i = 0, N = children.size(); i < N; ++i) { |
116 nc.add(convert(dcn)); | 116 cs[i] = convert(children.get(i)); |
117 } | 117 } |
118 | |
119 cs = nc.toArray(new TreeNode[nc.size()]); | |
120 } | 118 } |
121 else { | 119 else { |
122 cs = new TreeNode[0]; | 120 cs = new TreeNode[0]; |
123 } | 121 } |
124 | 122 |
125 return new TreeNode(node.getName(), cs); | 123 return new TreeNode(node.getName(), cs); |
126 } | 124 } |
127 | 125 |
128 protected static Tree convert(DataCageTree tree) { | 126 protected static Tree convertTree(DataCageTree tree) { |
129 DataCageNode root = tree.getRoot(); | 127 DataCageNode root = tree.getRoot(); |
130 | 128 |
131 List<DataCageNode> children = root.getChildren(); | 129 List<DataCageNode> children = root.getChildren(); |
132 | 130 |
133 TreeNode [] cs; | 131 TreeNode [] cs; |
134 | 132 |
135 if (children != null) { | 133 if (children != null) { |
136 ArrayList<TreeNode> nc = new ArrayList<TreeNode>(children.size()); | 134 cs = new TreeNode[children.size()]; |
137 | 135 |
138 if (nc != null) { | 136 for (int i = 0, N = children.size(); i < N; ++i) { |
139 for (DataCageNode dcn: children) { | 137 cs[i] = convert(children.get(i)); |
140 nc.add(convert(dcn)); | |
141 } | |
142 } | 138 } |
143 cs = nc.toArray(new TreeNode[nc.size()]); | |
144 } | 139 } |
145 else { | 140 else { |
146 cs = new TreeNode[0]; | 141 cs = new TreeNode[0]; |
147 } | 142 } |
148 | 143 |