Mercurial > dive4elements > river
diff 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 |
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/DatacageWidget.java Wed Sep 21 14:37:51 2011 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/DatacageWidget.java Mon Sep 26 09:08:47 2011 +0000 @@ -1,6 +1,7 @@ package de.intevation.flys.client.client.ui; import de.intevation.flys.client.client.event.DatacageHandler; +import de.intevation.flys.client.client.event.DatacageDoubleClickHandler; import com.google.gwt.core.client.GWT; @@ -64,11 +65,13 @@ protected ToLoad toLoad; - protected List<DatacageHandler> handlers; + protected List<DatacageHandler> handlers; + protected List<DatacageDoubleClickHandler> doubleHandlers; public DatacageWidget() { - handlers = new ArrayList<DatacageHandler>(); + handlers = new ArrayList<DatacageHandler>(); + doubleHandlers = new ArrayList<DatacageDoubleClickHandler>(); } @@ -170,6 +173,16 @@ /** + * @param h Handler to be added (notified on Double click on node). + */ + public void addDatacageDoubleClickHandler(DatacageDoubleClickHandler h) { + if (!doubleHandlers.contains(h)) { + doubleHandlers.add(h); + } + } + + + /** * @param handler Handler to remove from list. */ public void removeDatacageHandler(DatacageHandler handler) { @@ -235,11 +248,17 @@ } + protected void fireOnDoubleClick() { + for (DatacageDoubleClickHandler handler: doubleHandlers) { + handler.onDoubleClick(toLoad); + } + } + + protected void doubleClickedOnTree(RecordDoubleClickEvent event) { - TreeNode node = (TreeNode)event.getRecord(); collectToLoads(node); - destroy(); + fireOnDoubleClick(); }