view flys-client/src/main/java/de/intevation/flys/client/client/ui/wq/WQAutoTabSet.java @ 5462:f2371f3aaf03

Show top level folder icons only if node has no factory If you have an empty folder the folder icon is still shown. This makes it possible to add functional "Top Level" entries in the Datacage
author Andre Heinecke <aheinecke@intevation.de>
date Tue, 26 Mar 2013 18:29:13 +0100
parents 3d01658d9c9c
children
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