view artifacts/src/main/java/org/dive4elements/river/artifacts/common/ExportContextPDF.java @ 9318:7b2b086e45f0

collision pdf details, ResultType refactoring, bezugswst result
author gernotbelger
date Fri, 27 Jul 2018 10:11:23 +0200
parents a4121ec450d6
children a49fe0ebb297
line wrap: on
line source
/** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
 * Software engineering by
 *  Björnsen Beratende Ingenieure GmbH
 *  Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
 *
 * 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.common;

import java.text.DateFormat;
import java.text.NumberFormat;
import java.util.Date;
import java.util.Locale;

import org.apache.commons.lang.math.DoubleRange;
import org.dive4elements.artifacts.CallContext;
import org.dive4elements.river.FLYS;
import org.dive4elements.river.artifacts.resources.Resources;
import org.dive4elements.river.artifacts.sinfo.util.RiverInfo;

/**
 * @author Domenico Nardi Tironi
 *
 */
public final class ExportContextPDF extends AbstractExportContext {

    public ExportContextPDF(final CallContext context, final AbstractCalculationResults<?> results) {
        super(context, results);
    }

    // TODO: rename
    public String msgPdf(final IResultType type) {
        return type.getPdfHeader(getContext().getMeta());
    }

    public void addJRMetadata(final MetaAndTableJRDataSource source, final String key, final IResultType type) {
        source.addMetaData(key, type.getPdfHeader(getContext().getMeta()));
    }

    public void addJRMetadata(final MetaAndTableJRDataSource source, final String key, final String msg) {
        source.addMetaData(key, msg);
    }

    // *** CUSTOM STUFF that is used multiple times ***///
    public void addJRMetaDataDefaults(final MetaAndTableJRDataSource source) {

        source.addMetaData("header", msg(I18NStrings.CSV_META_HEADER_RESULT_LABEL));
        source.addMetaData("calcMode", getResults().getCalcModeLabel());

        source.addMetaData("version_label", msg(I18NStrings.CSV_META_VERSION_LABEL));
        source.addMetaData("version", FLYS.VERSION);

        source.addMetaData("user_label", msg(I18NStrings.CSV_META_USER_LABEL));
        source.addMetaData("user", getResults().getUser());

        final Locale locale = Resources.getLocale(getContext().getMeta());
        final DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
        source.addMetaData("date_label", msg(I18NStrings.CSV_META_CREATION_LABEL));
        source.addMetaData("date", df.format(new Date()));
    }

    public void addJRMetaDataUSINFO(final MetaAndTableJRDataSource source) {

        /* general metadata */
        addJRMetaDataDefaults(source);

        final RiverInfo river = getResults().getRiver();
        final String wstUnitName = river.getWstUnit();

        source.addMetaData("river_label", msg(I18NStrings.CSV_META_RIVER_LABEL));
        source.addMetaData("river", river.getName());
        source.addMetaData("river_unit", wstUnitName);

        final DoubleRange calcRange = getResults().getCalcRange();
        final NumberFormat kmFormatter = getKmFormatter();
        final String rangeValue = String.format("%s - %s", kmFormatter.format(calcRange.getMinimumDouble()), kmFormatter.format(calcRange.getMaximumDouble()));
        source.addMetaData("range_label", msg(I18NStrings.CSV_META_RANGE_LABEL));
        source.addMetaData("range", rangeValue);
    }
}

http://dive4elements.wald.intevation.org