teichmann@5835: package org.dive4elements.river.client.client.ui.wq; felix@4985: felix@4985: import com.google.gwt.core.client.GWT; felix@4985: felix@4985: import com.smartgwt.client.util.SC; felix@4985: import com.smartgwt.client.widgets.tab.Tab; felix@4985: import com.smartgwt.client.widgets.tab.TabSet; felix@4985: felix@4985: import com.google.gwt.user.client.rpc.AsyncCallback; felix@4985: teichmann@5835: import org.dive4elements.river.client.client.services.WQInfoService; teichmann@5835: import org.dive4elements.river.client.client.services.WQInfoServiceAsync; felix@4985: teichmann@5835: import org.dive4elements.river.client.shared.model.WQInfoObject; teichmann@5835: import org.dive4elements.river.client.shared.model.WQInfoRecord; felix@4985: teichmann@5835: import org.dive4elements.river.client.client.FLYSConstants; felix@4985: teichmann@5835: import org.dive4elements.river.client.client.Config; felix@4985: felix@4987: /** Tabset showing non-selectable W and Q/D values for a gauge. */ felix@4985: public class WQAutoTabSet extends TabSet { felix@4985: felix@4987: /** Service to fetch W/Q/D values. */ felix@4985: WQInfoServiceAsync wqInfoService = felix@4985: GWT.create(WQInfoService.class); felix@4985: felix@4985: /** The message class that provides i18n strings.*/ felix@4985: protected FLYSConstants MESSAGE = GWT.create(FLYSConstants.class); felix@4985: felix@4987: /** Table showing Q/D values. */ felix@4985: protected QDTable qdTable; felix@4985: felix@4987: /** Table showing W values. */ felix@4985: protected WTable wTable; felix@4985: felix@4987: felix@4987: /** Set up two tabs showing W and Q/D values, fetch and populate tables. */ felix@4985: public WQAutoTabSet(String riverName, double[] dist) { felix@4985: super(); felix@4985: felix@4985: this.setWidth100(); felix@4985: this.setHeight100(); felix@4985: felix@4985: Tab wTab = new Tab(MESSAGE.wq_table_w()); felix@4985: Tab qTab = new Tab(MESSAGE.wq_table_q()); felix@4985: felix@4985: qdTable = new QDTable(); felix@4985: qdTable.hideIconFields(); felix@4985: wTable = new WTable(); felix@4985: felix@4985: wTab.setPane(wTable); felix@4985: qTab.setPane(qdTable); felix@4985: felix@4985: this.addTab(wTab, 0); felix@4985: this.addTab(qTab, 1); felix@4985: felix@4985: Config config = Config.getInstance(); felix@4985: String locale = config.getLocale(); felix@4985: wqInfoService.getWQInfo(locale, riverName, dist[0], dist[1], felix@4985: new AsyncCallback() { felix@4985: @Override felix@4985: public void onFailure(Throwable caught) { felix@4985: GWT.log("Could not recieve wq informations."); felix@4985: SC.warn(caught.getMessage()); felix@4985: } felix@4985: felix@4985: @Override felix@4985: public void onSuccess(WQInfoObject[] wqi) { felix@4985: int num = wqi != null ? wqi.length :0; felix@4985: GWT.log("Recieved " + num + " wq informations."); felix@4985: felix@4985: if (num == 0) { felix@4985: return; felix@4985: } felix@4985: felix@4985: addWQInfo(wqi); felix@4985: } felix@4985: } felix@4985: ); felix@4985: } felix@4985: felix@4985: felix@4987: /** Populate tables with one value. */ felix@4987: private void addWQInfo (WQInfoObject[] wqi) { felix@4985: for(WQInfoObject wi: wqi) { felix@4985: WQInfoRecord rec = new WQInfoRecord(wi); felix@4985: felix@4985: if (wi.getType().equals("W")) { felix@4985: wTable.addData(rec); felix@4985: } felix@4985: else { felix@4985: qdTable.addData(rec); felix@4985: } felix@4985: } felix@4985: } felix@4985: } felix@4985: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :