comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/DatacageWidget.java @ 1267:07aa1f504491

Bugfix: #323 A double click in the datacage widget triggers the DatacageDoubleClickHandler.onDoubleClick() method of all registered handlers. flys-client/trunk@2820 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 26 Sep 2011 09:08:47 +0000
parents a1a5dc2b9e34
children d0500e993218
comparison
equal deleted inserted replaced
1266:ff012a9d9d1d 1267:07aa1f504491
1 package de.intevation.flys.client.client.ui; 1 package de.intevation.flys.client.client.ui;
2 2
3 import de.intevation.flys.client.client.event.DatacageHandler; 3 import de.intevation.flys.client.client.event.DatacageHandler;
4 import de.intevation.flys.client.client.event.DatacageDoubleClickHandler;
4 5
5 import com.google.gwt.core.client.GWT; 6 import com.google.gwt.core.client.GWT;
6 7
7 import com.google.gwt.user.client.rpc.AsyncCallback; 8 import com.google.gwt.user.client.rpc.AsyncCallback;
8 9
62 protected TreeGrid treeGrid; 63 protected TreeGrid treeGrid;
63 protected Tree tree; 64 protected Tree tree;
64 65
65 protected ToLoad toLoad; 66 protected ToLoad toLoad;
66 67
67 protected List<DatacageHandler> handlers; 68 protected List<DatacageHandler> handlers;
69 protected List<DatacageDoubleClickHandler> doubleHandlers;
68 70
69 71
70 public DatacageWidget() { 72 public DatacageWidget() {
71 handlers = new ArrayList<DatacageHandler>(); 73 handlers = new ArrayList<DatacageHandler>();
74 doubleHandlers = new ArrayList<DatacageDoubleClickHandler>();
72 } 75 }
73 76
74 77
75 public DatacageWidget(Artifact artifact, User user) { 78 public DatacageWidget(Artifact artifact, User user) {
76 this(artifact, user, null); 79 this(artifact, user, null);
168 } 171 }
169 } 172 }
170 173
171 174
172 /** 175 /**
176 * @param h Handler to be added (notified on Double click on node).
177 */
178 public void addDatacageDoubleClickHandler(DatacageDoubleClickHandler h) {
179 if (!doubleHandlers.contains(h)) {
180 doubleHandlers.add(h);
181 }
182 }
183
184
185 /**
173 * @param handler Handler to remove from list. 186 * @param handler Handler to remove from list.
174 */ 187 */
175 public void removeDatacageHandler(DatacageHandler handler) { 188 public void removeDatacageHandler(DatacageHandler handler) {
176 handlers.remove(handler); 189 handlers.remove(handler);
177 } 190 }
233 handler.toLoad(toLoad); 246 handler.toLoad(toLoad);
234 } 247 }
235 } 248 }
236 249
237 250
251 protected void fireOnDoubleClick() {
252 for (DatacageDoubleClickHandler handler: doubleHandlers) {
253 handler.onDoubleClick(toLoad);
254 }
255 }
256
257
238 protected void doubleClickedOnTree(RecordDoubleClickEvent event) { 258 protected void doubleClickedOnTree(RecordDoubleClickEvent event) {
239
240 TreeNode node = (TreeNode)event.getRecord(); 259 TreeNode node = (TreeNode)event.getRecord();
241 collectToLoads(node); 260 collectToLoads(node);
242 destroy(); 261 fireOnDoubleClick();
243 } 262 }
244 263
245 264
246 protected void collectToLoads(TreeNode node) { 265 protected void collectToLoads(TreeNode node) {
247 Stack<TreeNode> stack = new Stack<TreeNode>(); 266 Stack<TreeNode> stack = new Stack<TreeNode>();

http://dive4elements.wald.intevation.org