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);

http://dive4elements.wald.intevation.org