annotate artifacts/src/main/java/org/dive4elements/river/artifacts/common/ExportContextPDF.java @ 9171:f1be005f0c46

tab titles from server
author gernotbelger
date Fri, 22 Jun 2018 11:02:59 +0200
parents 23945061daec
children a4121ec450d6
rev   line source
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
2 * Software engineering by
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
5 *
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
9 */
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
10 package org.dive4elements.river.artifacts.common;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
11
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
12 import java.text.DateFormat;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
13 import java.text.NumberFormat;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
14 import java.util.Date;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
15 import java.util.Locale;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
16
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
17 import org.apache.commons.lang.math.DoubleRange;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
18 import org.dive4elements.artifacts.CallContext;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
19 import org.dive4elements.river.FLYS;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
20 import org.dive4elements.river.artifacts.resources.Resources;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
21 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
22 import org.dive4elements.river.utils.Formatter;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
23
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
24 /**
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
25 * @author Domenico Nardi Tironi
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
26 *
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
27 */
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
28 public final class ExportContextPDF {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
29
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
30 private NumberFormat kmFormat;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
31
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
32 /** The CallContext object. */
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
33 private final CallContext context;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
34
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
35 public ExportContextPDF(final CallContext context) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
36 this.context = context;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
37
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
38 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
39
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
40 private String msg(final String key) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
41 return Resources.getMsg(this.context.getMeta(), key, key);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
42 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
43
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
44 private String msg(final String key, final Object... args) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
45 return Resources.getMsg(this.context.getMeta(), key, key, args);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
46 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
47
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
48 public void addJRMetadata(final MetaAndTableJRDataSource source, final String key, final IResultType type) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
49 source.addMetaData(key, type.getPdfHeader(this.context.getMeta()));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
50 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
51
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
52 // *** CUSTOM STUFF that is used multiple times ***///
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
53 public void addJRMetaDataDefaults(final MetaAndTableJRDataSource source, final AbstractCalculationResults results) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
54
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
55 source.addMetaData("header", msg(I18NStrings.CSV_META_HEADER_RESULT_LABEL));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
56 source.addMetaData("calcMode", results.getCalcModeLabel());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
57
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
58 source.addMetaData("version_label", msg(I18NStrings.CSV_META_VERSION_LABEL));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
59 source.addMetaData("version", FLYS.VERSION);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
60
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
61 source.addMetaData("user_label", msg(I18NStrings.CSV_META_USER_LABEL));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
62 source.addMetaData("user", results.getUser());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
63
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
64 final Locale locale = Resources.getLocale(this.context.getMeta());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
65 final DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
66 source.addMetaData("date_label", msg(I18NStrings.CSV_META_CREATION_LABEL));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
67 source.addMetaData("date", df.format(new Date()));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
68 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
69
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
70 public void addJRMetaDataUSINFO(final MetaAndTableJRDataSource source, final AbstractCalculationResults results) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
71
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
72 /* general metadata */
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
73 addJRMetaDataDefaults(source, results);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
74
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
75 final RiverInfo river = results.getRiver();
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
76 final String wstUnitName = river.getWstUnit();
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
77
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
78 source.addMetaData("river_label", msg(I18NStrings.CSV_META_RIVER_LABEL));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
79 source.addMetaData("river", river.getName());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
80 source.addMetaData("river_unit", wstUnitName);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
81
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
82 final DoubleRange calcRange = results.getCalcRange();
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
83 final NumberFormat kmFormatter = getKmFormatter();
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
84 final String rangeValue = String.format("%s - %s", kmFormatter.format(calcRange.getMinimumDouble()), kmFormatter.format(calcRange.getMaximumDouble()));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
85 source.addMetaData("range_label", msg(I18NStrings.CSV_META_RANGE_LABEL));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
86 source.addMetaData("range", rangeValue);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
87
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
88 /* column headings */
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
89 // source.addMetaData("station_header", GeneralResultType.station.getPdfHeader(this.context.getMeta()));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
90
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
91 // moved to *result
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
92 /* column headings */
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
93 // source.addMetaData("flowdepth_header", SInfoResultType.flowdepth.getPdfHeader(this.context.getMeta()));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
94 // source.addMetaData("flowdepth_tkh_header", SInfoResultType.flowdepthtkh.getPdfHeader(this.context.getMeta()));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
95 // source.addMetaData("tkh_header", SInfoResultType.tkh.getPdfHeader(this.context.getMeta()));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
96 // source.addMetaData("waterlevel_header", SInfoResultType.waterlevel.getPdfHeader(this.context.getMeta()));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
97 // source.addMetaData("discharge_header", SInfoResultType.discharge.getPdfHeader(this.context.getMeta()));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
98 // source.addMetaData("waterlevel_name_header", SInfoResultType.waterlevelLabel.getPdfHeader(this.context.getMeta()));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
99 // source.addMetaData("gauge_header", SInfoResultType.gaugeLabel.getPdfHeader(this.context.getMeta()));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
100 // source.addMetaData("bedheight_header", SInfoResultType.meanBedHeight.getPdfHeader(this.context.getMeta()));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
101 // source.addMetaData("sounding_name_header", SInfoResultType.soundingLabel.getPdfHeader(this.context.getMeta()));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
102 // source.addMetaData("location_header", SInfoResultType.location.getPdfHeader(this.context.getMeta()));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
103 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
104
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
105 // copy from AbstractExporter TODO merge with ExportContextCSV
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
106 protected NumberFormat getKmFormatter() {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
107
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
108 if (this.kmFormat == null) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
109 this.kmFormat = Formatter.getWaterlevelKM(this.context);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
110 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
111 return this.kmFormat;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
112 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
113 }

http://dive4elements.wald.intevation.org