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

http://dive4elements.wald.intevation.org