gernotbelger@9150: /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde gernotbelger@9150: * Software engineering by gernotbelger@9150: * Björnsen Beratende Ingenieure GmbH gernotbelger@9150: * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt gernotbelger@9150: * gernotbelger@9150: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@9150: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@9150: * documentation coming with Dive4Elements River for details. gernotbelger@9150: */ gernotbelger@9150: package org.dive4elements.river.artifacts.common; gernotbelger@9150: gernotbelger@9150: import java.text.DateFormat; gernotbelger@9150: import java.text.NumberFormat; gernotbelger@9150: import java.util.Date; gernotbelger@9150: import java.util.Locale; gernotbelger@9150: gernotbelger@9150: import org.apache.commons.lang.math.DoubleRange; gernotbelger@9150: import org.dive4elements.artifacts.CallContext; gernotbelger@9150: import org.dive4elements.river.FLYS; gernotbelger@9150: import org.dive4elements.river.artifacts.resources.Resources; gernotbelger@9195: import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType; gernotbelger@9150: import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; gernotbelger@9150: gernotbelger@9150: /** gernotbelger@9150: * @author Domenico Nardi Tironi gernotbelger@9150: * gernotbelger@9150: */ gernotbelger@9195: public final class ExportContextPDF extends AbstractExportContext { gernotbelger@9150: gernotbelger@9195: public ExportContextPDF(final CallContext context, final AbstractCalculationResults results) { gernotbelger@9195: super(context, results); gernotbelger@9150: } gernotbelger@9150: gernotbelger@9195: // TODO: rename gernotbelger@9195: public String msgPdf(final SInfoResultType type) { gernotbelger@9195: return type.getPdfHeader(getContext().getMeta()); gernotbelger@9150: } gernotbelger@9150: gernotbelger@9150: public void addJRMetadata(final MetaAndTableJRDataSource source, final String key, final IResultType type) { gernotbelger@9195: source.addMetaData(key, type.getPdfHeader(getContext().getMeta())); gernotbelger@9195: } gernotbelger@9195: gernotbelger@9195: public void addJRMetadata(final MetaAndTableJRDataSource source, final String key, final String msg) { gernotbelger@9195: source.addMetaData(key, msg); gernotbelger@9150: } gernotbelger@9150: gernotbelger@9150: // *** CUSTOM STUFF that is used multiple times ***/// gernotbelger@9195: public void addJRMetaDataDefaults(final MetaAndTableJRDataSource source) { gernotbelger@9150: gernotbelger@9150: source.addMetaData("header", msg(I18NStrings.CSV_META_HEADER_RESULT_LABEL)); gernotbelger@9195: source.addMetaData("calcMode", getResults().getCalcModeLabel()); gernotbelger@9150: gernotbelger@9150: source.addMetaData("version_label", msg(I18NStrings.CSV_META_VERSION_LABEL)); gernotbelger@9150: source.addMetaData("version", FLYS.VERSION); gernotbelger@9150: gernotbelger@9150: source.addMetaData("user_label", msg(I18NStrings.CSV_META_USER_LABEL)); gernotbelger@9195: source.addMetaData("user", getResults().getUser()); gernotbelger@9150: gernotbelger@9195: final Locale locale = Resources.getLocale(getContext().getMeta()); gernotbelger@9150: final DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale); gernotbelger@9150: source.addMetaData("date_label", msg(I18NStrings.CSV_META_CREATION_LABEL)); gernotbelger@9150: source.addMetaData("date", df.format(new Date())); gernotbelger@9150: } gernotbelger@9150: gernotbelger@9195: public void addJRMetaDataUSINFO(final MetaAndTableJRDataSource source) { gernotbelger@9150: gernotbelger@9150: /* general metadata */ gernotbelger@9195: addJRMetaDataDefaults(source); gernotbelger@9150: gernotbelger@9195: final RiverInfo river = getResults().getRiver(); gernotbelger@9150: final String wstUnitName = river.getWstUnit(); gernotbelger@9150: gernotbelger@9150: source.addMetaData("river_label", msg(I18NStrings.CSV_META_RIVER_LABEL)); gernotbelger@9150: source.addMetaData("river", river.getName()); gernotbelger@9150: source.addMetaData("river_unit", wstUnitName); gernotbelger@9150: gernotbelger@9195: final DoubleRange calcRange = getResults().getCalcRange(); gernotbelger@9150: final NumberFormat kmFormatter = getKmFormatter(); gernotbelger@9150: final String rangeValue = String.format("%s - %s", kmFormatter.format(calcRange.getMinimumDouble()), kmFormatter.format(calcRange.getMaximumDouble())); gernotbelger@9150: source.addMetaData("range_label", msg(I18NStrings.CSV_META_RANGE_LABEL)); gernotbelger@9150: source.addMetaData("range", rangeValue); gernotbelger@9150: } gernotbelger@9150: }