annotate artifacts/src/main/java/org/dive4elements/river/artifacts/common/ExportContextCSV.java @ 9188:3931e8741f53

Minor cleanup and bugfix concerning number formatters
author gernotbelger
date Thu, 28 Jun 2018 13:14:44 +0200
parents f1be005f0c46
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;
9171
f1be005f0c46 tab titles from server
gernotbelger
parents: 9154
diff changeset
14 import java.util.ArrayList;
f1be005f0c46 tab titles from server
gernotbelger
parents: 9154
diff changeset
15 import java.util.Collection;
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
16 import java.util.Date;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
17 import java.util.Locale;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
18
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
19 import org.apache.commons.lang.math.DoubleRange;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
20 import org.dive4elements.artifacts.CallContext;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
21 import org.dive4elements.artifacts.CallMeta;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
22 import org.dive4elements.river.FLYS;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
23 import org.dive4elements.river.artifacts.resources.Resources;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
24 import org.dive4elements.river.artifacts.sinfo.common.SInfoI18NStrings;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
25 import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
26 import org.dive4elements.river.artifacts.sinfo.util.BedHeightInfo;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
27 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
28 import org.dive4elements.river.artifacts.sinfo.util.WstInfo;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
29 import org.dive4elements.river.utils.Formatter;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
30
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
31 import au.com.bytecode.opencsv.CSVWriter;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
32
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
33 /**
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
34 * @author Domenico Nardi Tironi
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
35 *
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
36 */
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
37 public final class ExportContextCSV {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
38
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
39 private static final String CSV_META_HEADER_EVALUATOR = "sinfo.export.flow_depth.csv.meta.header.sounding.evaluator";
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
40
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
41 private static final String CSV_META_HEADER_SOUNDING = "sinfo.export.flow_depth.csv.meta.header.sounding";
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
42
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
43 private static final String CSV_META_HEADER_SOUNDING_YEAR = "sinfo.export.flow_depth.csv.meta.header.sounding.year";
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
44
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
45 private static final String CSV_META_HEADER_SOUNDING_TYPE = "sinfo.export.flow_depth.csv.meta.header.sounding.type";
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
46
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
47 private static final String CSV_META_HEADER_SOUNDING_PRJ = "sinfo.export.flow_depth.csv.meta.header.sounding.prj";
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
48
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
49 private static final String CSV_META_HEADER_SOUNDING_ELEVATIOIN_MODEL = "sinfo.export.flow_depth.csv.meta.header.sounding.elevationmodel";
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
50
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
51 private static final String CSV_META_HEADER_SOUNDING_ELEVATIOIN_MODEL_ORIGINAL = "sinfo.export.flow_depth.csv.meta.header.sounding.elevationmodel.original";
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
52
9188
3931e8741f53 Minor cleanup and bugfix concerning number formatters
gernotbelger
parents: 9171
diff changeset
53 private NumberFormat qFormat = null;
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
54
9188
3931e8741f53 Minor cleanup and bugfix concerning number formatters
gernotbelger
parents: 9171
diff changeset
55 private NumberFormat flowDepthFormat = null;
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
56
9188
3931e8741f53 Minor cleanup and bugfix concerning number formatters
gernotbelger
parents: 9171
diff changeset
57 private NumberFormat kmFormat = null;
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
58
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
59 /** The CallContext object. */
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
60 private final CallContext context;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
61
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
62 private final CSVWriter writer;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
63
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
64 public ExportContextCSV(final CallContext context, final CSVWriter writer) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
65 this.context = context;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
66 this.writer = writer;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
67 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
68
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
69 private String msg(final String key) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
70 return Resources.getMsg(this.context.getMeta(), key, key);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
71 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
72
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
73 public String msg(final String key, final Object... args) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
74 return Resources.getMsg(this.context.getMeta(), key, key, args);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
75 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
76
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
77 public final void writeCSVMetaEntry(final String message, final Object... messageArgs) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
78
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
79 final CallMeta meta = this.context.getMeta();
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
80
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
81 this.writer.writeNext(new String[] { Resources.getMsg(meta, message, message, messageArgs) });
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
82 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
83
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
84 public void writeBlankLine() {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
85 writeCSVLine(new String[] { "" });
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
86 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
87
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
88 // *** CUSTOM STUFF that is used multiple times ***///
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
89
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
90 public final void writeCSVSoundingMetadata(final BedHeightInfo sounding) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
91 // "##METADATEN PEILUNG"
9154
cd24db77f044 little bugfix on soundings
gernotbelger
parents: 9150
diff changeset
92 writeCSVSoundingMetadata(sounding, CSV_META_HEADER_SOUNDING);
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
93
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
94 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
95
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
96 public void writeCSVLine(final String[] line) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
97 this.writer.writeNext(line);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
98 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
99
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
100 public String formatCsvHeader(final IResultType type) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
101 return msg(type.getCsvHeader());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
102 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
103
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
104 public String formatRowValue(final ResultRow row, final IResultType type) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
105 return row.exportValue(this.context, type);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
106 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
107
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
108 public void addJRMetadata(final MetaAndTableJRDataSource source, final String key, final IResultType type) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
109 source.addMetaData(key, type.getPdfHeader(this.context.getMeta()));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
110 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
111
9188
3931e8741f53 Minor cleanup and bugfix concerning number formatters
gernotbelger
parents: 9171
diff changeset
112 public final void writeCSVGlobalMetadataDefaults(final AbstractCalculationResults<?> results) {
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
113 // TODO: results as member
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
114 final String calcModeLabel = results.getCalcModeLabel();
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
115 final RiverInfo river = results.getRiver();
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
116 final DoubleRange calcRange = results.getCalcRange();
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
117
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
118 writeCSVMetaEntry(I18NStrings.CSV_META_HEADER_RESULT, msg(I18NStrings.CSV_META_HEADER_RESULT_LABEL), river.getName(), calcModeLabel);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
119
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
120 // "# FLYS-Version: "
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
121 writeCSVMetaEntry(I18NStrings.CSV_META_VERSION, msg(I18NStrings.CSV_META_VERSION_LABEL), FLYS.VERSION);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
122
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
123 // "# Bearbeiter: "
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
124 writeCSVMetaEntry(I18NStrings.CSV_META_USER, msg(I18NStrings.CSV_META_USER_LABEL), results.getUser());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
125
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
126 // "# Datum der Erstellung: "
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
127 final Locale locale = Resources.getLocale(this.context.getMeta());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
128 final DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
129 writeCSVMetaEntry(I18NStrings.CSV_META_CREATION, msg(I18NStrings.CSV_META_CREATION_LABEL), df.format(new Date()));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
130
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
131 // "# Gewässer: "
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
132 writeCSVMetaEntry(I18NStrings.CSV_META_RIVER, msg(I18NStrings.CSV_META_RIVER_LABEL), river.getName());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
133
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
134 // "# Höhensystem des Flusses: "
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
135 writeCSVMetaEntry(I18NStrings.CSV_META_HEIGHT_UNIT_RIVER, river.getWstUnit());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
136
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
137 if (calcRange != null) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
138 // "# Ort/Bereich (km): "
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
139 writeCSVMetaEntry(I18NStrings.CSV_META_RANGE, msg(I18NStrings.CSV_META_RANGE_LABEL), getKmFormatter().format(calcRange.getMinimumDouble()),
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
140 getKmFormatter().format(calcRange.getMaximumDouble()));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
141 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
142 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
143
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
144 public final void writeCSVWaterlevelMetadata(final WstInfo wst) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
145 writeCSVWaterlevelMetadata(wst, SInfoI18NStrings.CSV_META_HEADER_WATERLEVEL); // default Label; used in 99%
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
146 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
147
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
148 public final void writeCSVWaterlevelMetadata(final WstInfo wst, final String mainLabel) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
149 // "##METADATEN WASSERSPIEGELLAGE"
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
150 writeCSVMetaEntry(mainLabel);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
151
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
152 // "# Bezeichnung der Wasserspiegellage: "
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
153 writeCSVMetaEntry(SInfoI18NStrings.CSV_META_HEADER_WATERLEVEL_NAME, wst.getLabel());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
154
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
155 // "# Bezugspegel: "
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
156 writeCSVMetaEntry(SInfoI18NStrings.CSV_META_HEADER_WATERLEVEL_GAUGE, wst.getGauge());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
157
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
158 // "# Jahr/Zeitraum der Wasserspiegellage: "
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
159 final int year = wst.getYear();
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
160 if (year > 0)
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
161 writeCSVMetaEntry(SInfoI18NStrings.CSV_META_HEADER_WATERLEVEL_YEAR, Integer.toString(year));
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
162 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
163
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
164 // copy from AbstractExporter TODO merge with ExportContextPDF
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
165 protected NumberFormat getKmFormatter() {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
166
9188
3931e8741f53 Minor cleanup and bugfix concerning number formatters
gernotbelger
parents: 9171
diff changeset
167 if (this.kmFormat == null)
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
168 this.kmFormat = Formatter.getWaterlevelKM(this.context);
9188
3931e8741f53 Minor cleanup and bugfix concerning number formatters
gernotbelger
parents: 9171
diff changeset
169
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
170 return this.kmFormat;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
171 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
172
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
173 public void addJRMetadata(final MetaAndTableJRDataSource source, final String key, final String msg) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
174 source.addMetaData(key, msg);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
175 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
176
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
177 public NumberFormat getQFormatter() {
9188
3931e8741f53 Minor cleanup and bugfix concerning number formatters
gernotbelger
parents: 9171
diff changeset
178 if (this.qFormat == null)
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
179 this.qFormat = Formatter.getWaterlevelQ(this.context);
9188
3931e8741f53 Minor cleanup and bugfix concerning number formatters
gernotbelger
parents: 9171
diff changeset
180
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
181 return this.qFormat;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
182 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
183
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
184 public final NumberFormat getFlowDepthFormatter() {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
185 if (this.flowDepthFormat == null)
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
186 this.flowDepthFormat = Formatter.getFlowDepth(this.context);
9188
3931e8741f53 Minor cleanup and bugfix concerning number formatters
gernotbelger
parents: 9171
diff changeset
187
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
188 return this.flowDepthFormat;
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
189 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
190
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
191 /**
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
192 * Formats header with unit: msg [unit]
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
193 */
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
194
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
195 public String msgUnitCSV(final IResultType typeWithUnit) { // TODO: use generic Type!
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
196 final String unit = msg(typeWithUnit.getUnit());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
197 return msgUnitCSV(typeWithUnit, unit);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
198 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
199
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
200 public String msgUnitCSV(final IResultType type, final String unit) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
201 final String msg = msg(type.getCsvHeader());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
202 return String.format("%s [%s]", msg, unit);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
203 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
204
9154
cd24db77f044 little bugfix on soundings
gernotbelger
parents: 9150
diff changeset
205 public void writeCSVSoundingMetadata(final BedHeightInfo sounding, final String label) {
cd24db77f044 little bugfix on soundings
gernotbelger
parents: 9150
diff changeset
206
cd24db77f044 little bugfix on soundings
gernotbelger
parents: 9150
diff changeset
207 // "##METADATEN PEILUNG"
cd24db77f044 little bugfix on soundings
gernotbelger
parents: 9150
diff changeset
208 writeCSVMetaEntry(label);
cd24db77f044 little bugfix on soundings
gernotbelger
parents: 9150
diff changeset
209
cd24db77f044 little bugfix on soundings
gernotbelger
parents: 9150
diff changeset
210 // "# Jahr der Peilung: "
cd24db77f044 little bugfix on soundings
gernotbelger
parents: 9150
diff changeset
211 writeCSVMetaEntry(CSV_META_HEADER_SOUNDING_YEAR, Integer.toString(sounding.getYear()));
cd24db77f044 little bugfix on soundings
gernotbelger
parents: 9150
diff changeset
212 // "# Aufnahmeart: "
cd24db77f044 little bugfix on soundings
gernotbelger
parents: 9150
diff changeset
213 writeCSVMetaEntry(CSV_META_HEADER_SOUNDING_TYPE, sounding.getType());
cd24db77f044 little bugfix on soundings
gernotbelger
parents: 9150
diff changeset
214 // "# Auswerter: "
cd24db77f044 little bugfix on soundings
gernotbelger
parents: 9150
diff changeset
215 writeCSVMetaEntry(CSV_META_HEADER_EVALUATOR, sounding.getEvaluationBy());
cd24db77f044 little bugfix on soundings
gernotbelger
parents: 9150
diff changeset
216 // "# Lagesystem: "
cd24db77f044 little bugfix on soundings
gernotbelger
parents: 9150
diff changeset
217 writeCSVMetaEntry(CSV_META_HEADER_SOUNDING_PRJ, sounding.getLocationSystem());
cd24db77f044 little bugfix on soundings
gernotbelger
parents: 9150
diff changeset
218 // "# Höhensystem: "
cd24db77f044 little bugfix on soundings
gernotbelger
parents: 9150
diff changeset
219 writeCSVMetaEntry(CSV_META_HEADER_SOUNDING_ELEVATIOIN_MODEL, sounding.getCurElevationModelUnit());
cd24db77f044 little bugfix on soundings
gernotbelger
parents: 9150
diff changeset
220 // "# ursprüngliches Höhensystem: "
cd24db77f044 little bugfix on soundings
gernotbelger
parents: 9150
diff changeset
221 writeCSVMetaEntry(CSV_META_HEADER_SOUNDING_ELEVATIOIN_MODEL_ORIGINAL, sounding.getOldElevationModelUnit());
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
222
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
223 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
224
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
225 public final String msgUnitLabel(final IResultType typeWithUnit, final String label) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
226 final String msg = msg(typeWithUnit.getCsvHeader());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
227 final String unit = msg(typeWithUnit.getUnit());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
228 return String.format("%s [%s] (%s)", msg, unit, label);
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
229 }
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
230
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
231 public String msgPdf(final SInfoResultType type) {
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
232 return type.getPdfHeader(this.context.getMeta());
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
233 }
9171
f1be005f0c46 tab titles from server
gernotbelger
parents: 9154
diff changeset
234
f1be005f0c46 tab titles from server
gernotbelger
parents: 9154
diff changeset
235 public void writeTitleForTabs(final String tabTitleMsg, final int colSize) {
f1be005f0c46 tab titles from server
gernotbelger
parents: 9154
diff changeset
236
f1be005f0c46 tab titles from server
gernotbelger
parents: 9154
diff changeset
237 final Collection<String> title = new ArrayList<>(colSize);
f1be005f0c46 tab titles from server
gernotbelger
parents: 9154
diff changeset
238 title.add(msg("export_csv_title") + msg(tabTitleMsg));
f1be005f0c46 tab titles from server
gernotbelger
parents: 9154
diff changeset
239 writeCSVLine(title.toArray(new String[colSize]));
f1be005f0c46 tab titles from server
gernotbelger
parents: 9154
diff changeset
240 }
9150
23945061daec gigantic refactoring: exporter, result, results
gernotbelger
parents:
diff changeset
241 }

http://dive4elements.wald.intevation.org