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

http://dive4elements.wald.intevation.org