diff flys-client/src/main/java/org/dive4elements/river/client/client/ui/wq/WQAutoTabSet.java @ 5834:f507086aa94b

Repaired internal references.
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 12:31:32 +0200
parents flys-client/src/main/java/de/intevation/flys/client/client/ui/wq/WQAutoTabSet.java@3d01658d9c9c
children 821a02bbfb4e
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-client/src/main/java/org/dive4elements/river/client/client/ui/wq/WQAutoTabSet.java	Thu Apr 25 12:31:32 2013 +0200
@@ -0,0 +1,98 @@
+package de.intevation.flys.client.client.ui.wq;
+
+import com.google.gwt.core.client.GWT;
+
+import com.smartgwt.client.util.SC;
+import com.smartgwt.client.widgets.tab.Tab;
+import com.smartgwt.client.widgets.tab.TabSet;
+
+import com.google.gwt.user.client.rpc.AsyncCallback;
+
+import de.intevation.flys.client.client.services.WQInfoService;
+import de.intevation.flys.client.client.services.WQInfoServiceAsync;
+
+import de.intevation.flys.client.shared.model.WQInfoObject;
+import de.intevation.flys.client.shared.model.WQInfoRecord;
+
+import de.intevation.flys.client.client.FLYSConstants;
+
+import de.intevation.flys.client.client.Config;
+
+/** Tabset showing non-selectable W and Q/D values for a gauge. */
+public class WQAutoTabSet extends TabSet {
+
+    /** Service to fetch W/Q/D values. */
+    WQInfoServiceAsync wqInfoService =
+            GWT.create(WQInfoService.class);
+
+    /** The message class that provides i18n strings.*/
+    protected FLYSConstants MESSAGE = GWT.create(FLYSConstants.class);
+
+    /** Table showing Q/D values. */
+    protected QDTable qdTable;
+
+    /** Table showing W values. */
+    protected WTable wTable;
+
+
+    /** Set up two tabs showing W and Q/D values, fetch and populate tables. */
+    public WQAutoTabSet(String riverName, double[] dist) {
+        super();
+
+        this.setWidth100();
+        this.setHeight100();
+
+        Tab wTab = new Tab(MESSAGE.wq_table_w());
+        Tab qTab = new Tab(MESSAGE.wq_table_q());
+
+        qdTable = new QDTable();
+        qdTable.hideIconFields();
+        wTable  = new WTable();
+
+        wTab.setPane(wTable);
+        qTab.setPane(qdTable);
+
+        this.addTab(wTab, 0);
+        this.addTab(qTab, 1);
+
+        Config config = Config.getInstance();
+        String locale = config.getLocale();
+        wqInfoService.getWQInfo(locale, riverName, dist[0], dist[1],
+            new AsyncCallback<WQInfoObject[]>() {
+                @Override
+                public void onFailure(Throwable caught) {
+                    GWT.log("Could not recieve wq informations.");
+                    SC.warn(caught.getMessage());
+                }
+
+                @Override
+                public void onSuccess(WQInfoObject[] wqi) {
+                    int num = wqi != null ? wqi.length :0;
+                    GWT.log("Recieved " + num + " wq informations.");
+
+                    if (num == 0) {
+                        return;
+                    }
+
+                    addWQInfo(wqi);
+                }
+            }
+        );
+    }
+
+
+    /** Populate tables with one value. */
+    private void addWQInfo (WQInfoObject[] wqi) {
+        for(WQInfoObject wi: wqi) {
+            WQInfoRecord rec = new WQInfoRecord(wi);
+
+            if (wi.getType().equals("W")) {
+                wTable.addData(rec);
+            }
+            else {
+                qdTable.addData(rec);
+            }
+        }
+    }
+}
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org