view artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationExporter.java @ 9205:3dae6b78e1da

inundationDuration/floodDuration multiple columns+chartLines refactoring
author gernotbelger
date Mon, 02 Jul 2018 19:01:09 +0200
parents b4402594213b
children 7a8b9331a946
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.artifacts.sinfo.flood_duration;

import org.dive4elements.river.artifacts.common.AbstractCommonExporter;
import org.dive4elements.river.artifacts.common.ExportContextCSV;
import org.dive4elements.river.artifacts.common.ExportContextPDF;
import org.dive4elements.river.artifacts.common.JasperDesigner;
import org.dive4elements.river.artifacts.common.MetaAndTableJRDataSource;

/**
 * Generates different output formats (csv, pdf) of data that resulted from a flood duration computation.
 *
 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
 * @author Gernot Belger
 */
// REMARK: must be public because its registered in generators.xml

public class FloodDurationExporter extends AbstractCommonExporter<FloodDurationCalculationResult, FloodDurationCalculationResults> {

    @Override
    protected void writeCSVGlobalMetadata(final ExportContextCSV exportContext, final FloodDurationCalculationResults results) {
        exportContext.writeCSVGlobalMetadataDefaults();
    }

    @Override
    protected void writePDFGlobalMetadata(final ExportContextPDF exportContext, final MetaAndTableJRDataSource source) {
        exportContext.addJRMetaDataUSINFO(source);
    }

    @Override
    protected void configureDesign(final FloodDurationCalculationResult result, final JasperDesigner design) {
        if (result instanceof FloodDurationCalculationResult) {
            final int wlCount = result.getWaterlevelCount();
            if (wlCount == 0 || wlCount == 2) {
                design.removeColumn("wOpt");
                design.removeColumn("qOpt");
                design.removeColumn("bezOpt");
                design.removeColumn("durOpt");
            }
        }
    }
}

http://dive4elements.wald.intevation.org