view artifacts/src/main/java/org/dive4elements/river/exports/process/BedheightProcessor.java @ 6332:f5bb53106ae8

Remove createBarriersLayer and createBarriers The generated mapfiles did not work and were just confusing. This looks like historical cruft that was never deleted. The real barrier mapfiles are created in the Floodmap state
author Andre Heinecke <aheinecke@intevation.de>
date Thu, 13 Jun 2013 17:24:56 +0200
parents af13ceeba52a
children 1b35b2ddfc28
line wrap: on
line source
/* Copyright (C) 2011, 2012, 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.process;

import java.util.List;

import org.apache.log4j.Logger;
import org.jfree.data.xy.XYSeries;
import org.w3c.dom.Document;

import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
import org.dive4elements.artifacts.CallContext;
import org.dive4elements.river.artifacts.model.minfo.BedHeightSingle;
import org.dive4elements.river.exports.XYChartGenerator;
import org.dive4elements.river.jfree.StyledXYSeries;
import org.dive4elements.river.model.BedHeightSingleValue;

public class BedheightProcessor implements Processor {

    private final static Logger logger =
            Logger.getLogger(BedheightProcessor.class);

    private final static String BEDHEIGHT = "bedheight";

    @Override
    public void doOut(
            XYChartGenerator generator,
            ArtifactAndFacet aandf,
            Document theme,
            boolean visible,
            int index
    ) {
        CallContext context = generator.getCallContext();
        Object data = aandf.getData(context);
        if (data instanceof BedHeightSingle) {
            doBedheightSingleOut(generator, aandf, theme, index, visible,
                    (BedHeightSingle)data);
        }
        else if (data instanceof List<?>) {
            doBedheightSingeValuesOut(generator, aandf, theme, index, visible,
                    (List<BedHeightSingleValue>)data);
        }
        logger.error("Can't process " + data.getClass().getName() + " objects");
    }

    private void doBedheightSingeValuesOut(XYChartGenerator generator,
            ArtifactAndFacet aandf, Document theme, int index, boolean visible,
            List<BedHeightSingleValue> data) {
        logger.debug("doBedheightSingleOut");

        XYSeries series = new StyledXYSeries(aandf.getFacetDescription(),
                theme);
        for(BedHeightSingleValue bvalue: data) {
            series.add(bvalue.getStation(), bvalue.getSoundingWidth());
        }
        generator.addAxisSeries(series, index, visible);
    }

    @Override
    public boolean canHandle(String facettype) {
        return BEDHEIGHT.equals(facettype);
    }

    public void doBedheightSingleOut(XYChartGenerator generator,
            ArtifactAndFacet aandf, Document theme, int index, boolean visible,
            BedHeightSingle data) {
        double[] width = data.getMorphWidths();
        double[] stations = data.getStations().toNativeArray();

        logger.debug("doBedheightSingleOut");

        XYSeries series = new StyledXYSeries(aandf.getFacetDescription(),
                theme);

        for (int i = 0; i < width.length; i++) {
            series.add(stations[i], width[i], false);
        }

        generator.addAxisSeries(series, index, visible);
    }
}

http://dive4elements.wald.intevation.org