Mercurial > dive4elements > river
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>(); |