diff flys-client/src/main/java/de/intevation/flys/client/client/ui/GaugeTree.java @ 3865:436eec3be6ff

Allow to create a discharge curve from a gauge info This is only a draft yet. flys-client/trunk@5639 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Bjoern Ricks <bjoern.ricks@intevation.de>
date Fri, 28 Sep 2012 08:57:48 +0000
parents f3b821735e39
children 989f6f0d1986
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/GaugeTree.java	Fri Sep 28 08:52:53 2012 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/GaugeTree.java	Fri Sep 28 08:57:48 2012 +0000
@@ -5,6 +5,8 @@
 import java.util.Iterator;
 
 import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
 import com.google.gwt.i18n.client.NumberFormat;
 import com.google.gwt.user.client.ui.Anchor;
 import com.google.gwt.user.client.ui.DecoratorPanel;
@@ -16,6 +18,7 @@
 
 import com.smartgwt.client.widgets.layout.HLayout;
 
+import de.intevation.flys.client.client.FLYS;
 import de.intevation.flys.client.client.FLYSConstants;
 
 import de.intevation.flys.client.shared.model.Data;
@@ -27,13 +30,15 @@
 
 public class GaugeTree extends ScrollPanel {
 
+    private FLYS flys;
     private Tree tree;
     private DataList[] data;
 
     /** The message class that provides i18n strings.*/
     protected FLYSConstants MSG = GWT.create(FLYSConstants.class);
 
-    public GaugeTree() {
+    public GaugeTree(FLYS flys) {
+        this.flys = flys;
         tree = new Tree();
         setWidget(tree);
     }
@@ -82,7 +87,7 @@
     }
 
     private void addGauge(GaugeInfo gauge) {
-        GaugeInfoItem gaugeitem = new GaugeInfoItem(gauge);
+        GaugeInfoItem gaugeitem = new GaugeInfoItem(flys, gauge);
         tree.addItem(gaugeitem);
     }
 
@@ -315,8 +320,8 @@
 
         private GaugeInfo gauge;
 
-        public GaugeInfoItem(GaugeInfo gauge) {
-            GaugeInfoHead gaugeinfohead = new GaugeInfoHead(gauge);
+        public GaugeInfoItem(FLYS flys, GaugeInfo gauge) {
+            GaugeInfoHead gaugeinfohead = new GaugeInfoHead(flys, gauge);
             GaugeInfoPanel gaugeinfopanel = new GaugeInfoPanel(gauge);
             setWidget(gaugeinfohead);
             addItem(gaugeinfopanel);
@@ -338,7 +343,7 @@
 
     class GaugeInfoHead extends HLayout {
 
-        public GaugeInfoHead(GaugeInfo gauge) {
+        public GaugeInfoHead(FLYS flys, GaugeInfo gauge) {
             setStyleName("gaugeinfohead");
             setAutoHeight();
             setAutoWidth();
@@ -390,6 +395,29 @@
                 MSG.gauge_url();
             Anchor anchor = new Anchor(MSG.gauge_info_link(), url);
             addMember(anchor);
+
+            addMember(new GaugeCurveAnchor(flys, gauge));
+        }
+    }
+
+    class GaugeCurveAnchor extends Anchor implements ClickHandler {
+
+        private FLYS flys;
+        private GaugeInfo gauge;
+
+        public GaugeCurveAnchor(FLYS flys, GaugeInfo gauge) {
+            super(MSG.gauge_curve_link());
+            this.flys = flys;
+            this.gauge = gauge;
+
+            addClickHandler(this);
+        }
+
+        public void onClick(ClickEvent ev) {
+            GWT.log("GaugeCurveAnchor - onClick " + gauge.getRiverName() +
+                    " " + gauge.getOfficialNumber());
+            flys.newGaugeDischargeCurve(gauge.getRiverName(),
+                    gauge.getOfficialNumber());
         }
     }
 

http://dive4elements.wald.intevation.org