view flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapPanel.java @ 4475:6fb4e29a2a9b

Resize MapWidget in MapPanel manually using a ResizedHandler. This should fix parts of Flys/#802.
author Christian Lins <christian.lins@intevation.de>
date Mon, 12 Nov 2012 10:53:32 +0100
parents c84630d544a1
children 099d136b215b
line wrap: on
line source
package de.intevation.flys.client.client.ui.map;

import com.google.gwt.core.client.GWT;

import com.smartgwt.client.widgets.events.ResizedEvent;
import com.smartgwt.client.widgets.events.ResizedHandler;
import com.smartgwt.client.widgets.layout.VLayout;

import de.intevation.flys.client.shared.model.BBox;
import de.intevation.flys.client.shared.model.MapInfo;

import org.gwtopenmaps.openlayers.client.Bounds;
import org.gwtopenmaps.openlayers.client.MapWidget;

/**
 * Panel that contains a MapWidget and a MapToolbar.
 * This panel is used by the flood map calculation input helper.
 */
public class MapPanel extends VLayout {

    protected MapToolbar      toolbar;

    protected FloodMap  floodMap;
    protected MapWidget floodMapWidget;
    protected boolean   digitizeEnabled;

    public MapPanel(MapInfo mapInfo, boolean digitizeEnabled) {
        BBox bbox = mapInfo.getBBox();

        this.digitizeEnabled = digitizeEnabled;
        this.floodMap        = new FloodMap(
            String.valueOf(mapInfo.getSrid()),
            new Bounds(
                bbox.getLowerX(),
                bbox.getLowerY(),
                bbox.getUpperX(),
                bbox.getUpperY()),
                "100%", "100%");

        initLayout();
    }


    private void initLayout() {
        setWidth100();
        setHeight100();

        floodMapWidget = floodMap.getMapWidget();
        toolbar = new MapToolbar(floodMap, digitizeEnabled);

        addMember(toolbar);
        addMember(floodMapWidget);

        addResizedHandler(new ResizedHandler() {

            @Override
            public void onResized(ResizedEvent event) {
                doLayout();
            }
        });
    }


    protected void doLayout() {
        GWT.log("MapPanel.size: " + getWidth() + "x" + getHeight());

        this.floodMapWidget.setWidth(getWidthAsString());
        this.floodMapWidget.setHeight(getHeightAsString());
    }


    public FloodMap getFloodMap() {
        return floodMap;
    }

    public MapToolbar getMapToolbar () {
        return toolbar;
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org