view 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 source
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