Mercurial > dive4elements > river
comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/DatacageWindow.java @ 831:9101b4d64666
Datacage: Re-written ToLoad to feature the new filter models.
flys-client/trunk@2539 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Tue, 23 Aug 2011 16:58:07 +0000 |
parents | bd56dc762e7f |
children | 29966a53cfeb |
comparison
equal
deleted
inserted
replaced
830:3dde14f0bd98 | 831:9101b4d64666 |
---|---|
43 import de.intevation.flys.client.shared.model.DataCageTree; | 43 import de.intevation.flys.client.shared.model.DataCageTree; |
44 import de.intevation.flys.client.shared.model.DataCageNode; | 44 import de.intevation.flys.client.shared.model.DataCageNode; |
45 import de.intevation.flys.client.shared.model.AttrList; | 45 import de.intevation.flys.client.shared.model.AttrList; |
46 | 46 |
47 import java.util.ArrayList; | 47 import java.util.ArrayList; |
48 import java.util.Map; | |
49 import java.util.HashMap; | |
50 import java.util.List; | 48 import java.util.List; |
51 import java.util.Stack; | 49 import java.util.Stack; |
52 | 50 |
53 public class DatacageWindow | 51 public class DatacageWindow |
54 extends Window | 52 extends Window |
67 protected TreeGrid treeGrid; | 65 protected TreeGrid treeGrid; |
68 protected Tree tree; | 66 protected Tree tree; |
69 | 67 |
70 protected Layout layout; | 68 protected Layout layout; |
71 | 69 |
72 protected Map<String, ToLoad> toLoad; | 70 protected ToLoad toLoad; |
73 | 71 |
74 | 72 |
75 public DatacageWindow(Artifact artifact, User user) { | 73 public DatacageWindow(Artifact artifact, User user) { |
76 this(artifact, user, null); | 74 this(artifact, user, null); |
77 } | 75 } |
129 setShowModalMask(true); | 127 setShowModalMask(true); |
130 setCanDragResize(true); | 128 setCanDragResize(true); |
131 | 129 |
132 centerInPage(); | 130 centerInPage(); |
133 | 131 |
134 toLoad = new HashMap<String, ToLoad>(); | 132 toLoad = new ToLoad(); |
135 | 133 |
136 triggerTreeBuilding(); | 134 triggerTreeBuilding(); |
137 } | 135 } |
138 | 136 |
139 public Map<String, ToLoad> toLoad() { | 137 public ToLoad getToLoad() { |
140 return toLoad; | 138 return toLoad; |
141 } | 139 } |
142 | 140 |
143 public void plusClicked() { | 141 public void plusClicked() { |
144 if (treeGrid == null) { | 142 if (treeGrid == null) { |
153 collectToLoads((TreeNode)record); | 151 collectToLoads((TreeNode)record); |
154 } | 152 } |
155 } | 153 } |
156 } | 154 } |
157 | 155 |
158 GWT.log(toLoad.toString()); | |
159 | |
160 if (!toLoad.isEmpty()) { | 156 if (!toLoad.isEmpty()) { |
161 destroy(); | 157 destroy(); |
162 } | 158 } |
163 } | 159 } |
164 | 160 |
165 protected void doubleClickedOnTree(RecordDoubleClickEvent event) { | 161 protected void doubleClickedOnTree(RecordDoubleClickEvent event) { |
166 | 162 |
167 TreeNode node = (TreeNode)event.getRecord(); | 163 TreeNode node = (TreeNode)event.getRecord(); |
168 collectToLoads(node); | 164 collectToLoads(node); |
169 GWT.log(toLoad.toString()); | |
170 destroy(); | 165 destroy(); |
171 } | 166 } |
172 | 167 |
173 protected void collectToLoads(TreeNode node) { | 168 protected void collectToLoads(TreeNode node) { |
174 Stack<TreeNode> stack = new Stack<TreeNode>(); | 169 Stack<TreeNode> stack = new Stack<TreeNode>(); |
177 | 172 |
178 while (!stack.isEmpty()) { | 173 while (!stack.isEmpty()) { |
179 node = stack.pop(); | 174 node = stack.pop(); |
180 String factory = node.getAttribute("factory"); | 175 String factory = node.getAttribute("factory"); |
181 if (factory != null) { // we need at least a factory | 176 if (factory != null) { // we need at least a factory |
182 String ids = node.getAttribute("ids"); | 177 String artifact = node.getAttribute("artifact-id"); |
183 String artifactId = node.getAttribute("artifact-id"); | 178 String out = node.getAttribute("out"); |
184 String num = node.getAttribute("num"); | 179 String name = node.getName(); |
185 | 180 String num = node.getAttribute("num"); |
186 ToLoad tl = toLoad.get(artifactId); | 181 |
187 if (tl == null) { | 182 toLoad.add(artifact, factory, out, name, num); |
188 tl = new ToLoad(artifactId); | |
189 } | |
190 | |
191 tl.add(factory, ids, num); | |
192 } | 183 } |
193 TreeNode [] children = tree.getChildren(node); | 184 TreeNode [] children = tree.getChildren(node); |
194 if (children != null) { | 185 if (children != null) { |
195 for (TreeNode child: children) { | 186 for (TreeNode child: children) { |
196 stack.push(child); | 187 stack.push(child); |