Mercurial > dive4elements > river
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 :