view artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDiffBaseGenerator.java @ 6791:dd5355775ce1 longitudinal-symmetry

merge changes from default into longitudinal-symmetrie branch and make it build
author Tom Gottfried <tom@intevation.de>
date Wed, 07 Aug 2013 18:53:15 +0200
parents 87b49f9f27a1
children
line wrap: on
line source
/* Copyright (C) 2013 by Bundesanstalt für Gewässerkunde
 * Software engineering by Intevation GmbH
 *
 * This file is Free Software under the GNU AGPL (>=v3)
 * and comes with ABSOLUTELY NO WARRANTY! Check out the
 * documentation coming with Dive4Elements River for details.
 */

package org.dive4elements.river.exports.minfo;

import org.apache.log4j.Logger;

import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
import org.dive4elements.river.artifacts.model.minfo.BedDifferencesResult;
import org.dive4elements.river.jfree.Bounds;
import org.dive4elements.river.jfree.DoubleBounds;
import org.dive4elements.river.exports.LongitudinalSectionGenerator;

/** Base for BedDiff*Year*Generators, to avoid duplicate code of setContextBounds. */
public abstract class BedDiffBaseGenerator
extends LongitudinalSectionGenerator
{
    /** The logger that is used in this generator. */
    private static Logger logger = Logger.getLogger(BedDiffBaseGenerator.class);

    /** Set context values for something. */
    public void setContextBounds(ArtifactAndFacet bundle) {
        Bounds xBounds = getXBounds(0);
        if (xBounds != null && getDomainAxisRange() != null) {
            Bounds bounds =
                calculateZoom(xBounds, getDomainAxisRange());
            context.putContextValue("startkm", bounds.getLower());
            context.putContextValue("endkm", bounds.getUpper());
        }
        else if (xBounds != null && getDomainAxisRange() == null) {
            context.putContextValue("startkm", xBounds.getLower());
            context.putContextValue("endkm", xBounds.getUpper());
        }
        else if (xBounds == null && getDomainAxisRange() == null) {
            BedDifferencesResult data = (BedDifferencesResult)bundle.getData(context);
            if (data.getKms().size() > 0) {
                context.putContextValue("startkm", data.getKms().min());
                context.putContextValue("endkm", data.getKms().max());
            }
            else {
                logger.warn("No data to define start and end km");
            }
        }
        else if (xBounds == null && getDomainAxisRange() != null){
            BedDifferencesResult data = (BedDifferencesResult)bundle.getData(context);
            Bounds b = new DoubleBounds(data.getKms().min(), data.getKms().max());
            Bounds bounds =
                calculateZoom(b, getDomainAxisRange());
            context.putContextValue("startkm", bounds.getLower());
            context.putContextValue("endkm", bounds.getUpper());
        }
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org