view flys-client/src/main/java/de/intevation/flys/client/client/ui/minfo/BedCampaignChart.java @ 4253:a1bc5b8cff0f

Refactor GaugePanel to create it's own SectionStackSection The GaugePanel constructor now creates a SectionStackSection instead of using a provided one. Improve the rendering of the GaugePanel by having access to the SmartGWT wrapper (WidgetCanvas) object for the GWT Tree (GaugeTree) directly. Add methods to close and open the section. Also add a getter for the section.
author Björn Ricks <bjoern.ricks@intevation.de>
date Thu, 25 Oct 2012 13:52:58 +0200
parents f84ed73311f2
children
line wrap: on
line source
package de.intevation.flys.client.client.ui.minfo;

import com.google.gwt.core.client.GWT;
import com.google.gwt.json.client.JSONNumber;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONString;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.widgets.Img;
import com.smartgwt.client.widgets.events.ResizedHandler;
import com.smartgwt.client.widgets.layout.VLayout;

import de.intevation.flys.client.client.Config;
import de.intevation.flys.client.shared.model.Artifact;

public class BedCampaignChart extends VLayout {

    private final Artifact artifact;

    protected Img chartImg;

    public BedCampaignChart(Artifact artifact, ResizedHandler resizeHandler) {
        super();

        this.artifact = artifact;
        this.chartImg = new Img();

        addResizedHandler(resizeHandler);
        setAlign(Alignment.CENTER);
    }

    public void update() {
        Config config = Config.getInstance();
        String locale = config.getLocale();

        int hWidth = getWidth() - 12;
        int hHeight = getHeight() - 12;

        if ((int) (hHeight * 4f / 3) < hWidth) {
            hWidth = (int) (hHeight * 4f / 3);
        }
        else {
            hHeight = (int) (hWidth * 3f / 4);
        }

        String river = artifact.getArtifactDescription().getRiver();

        JSONObject jfix = new JSONObject();
        JSONObject jfilter = new JSONObject();
        JSONObject jrName = new JSONObject();
        JSONString jrValue = new JSONString(river);
        JSONObject jextent = new JSONObject();
        JSONNumber jwidth = new JSONNumber(hWidth);
        JSONNumber jheight = new JSONNumber(hHeight);

        jrName.put("name", jrValue);
        jfilter.put("river", jrName);
        jextent.put("width", jwidth);
        jextent.put("height", jheight);
        jfilter.put("extent", jextent);
        jfix.put("bed", jfilter);
        String filter = jfix.toString();

        String imgUrl = GWT.getModuleBaseURL();
        imgUrl += "bed-km-chart";
        imgUrl += "?locale=" + locale;
        imgUrl += "&filter=" + filter;

        if (chartImg != null && hasMember(chartImg)) {
            chartImg.setWidth(hWidth);
            chartImg.setHeight(hHeight);
            chartImg.setSrc(imgUrl);
        }
        else {
            chartImg = new Img(imgUrl, hWidth, hHeight);
            addMember(chartImg);
        }
    }
}

http://dive4elements.wald.intevation.org