comparison artifacts/src/main/java/org/dive4elements/river/artifacts/common/ExportContextPDF.java @ 9195:a4121ec450d6

'ca.'-issue ExportContextCSV+PDF separated uinfo.inundationduration url export
author gernotbelger
date Fri, 29 Jun 2018 14:52:54 +0200
parents 23945061daec
children 7b2b086e45f0
comparison
equal deleted inserted replaced
9191:f692f5a0536a 9195:a4121ec450d6
16 16
17 import org.apache.commons.lang.math.DoubleRange; 17 import org.apache.commons.lang.math.DoubleRange;
18 import org.dive4elements.artifacts.CallContext; 18 import org.dive4elements.artifacts.CallContext;
19 import org.dive4elements.river.FLYS; 19 import org.dive4elements.river.FLYS;
20 import org.dive4elements.river.artifacts.resources.Resources; 20 import org.dive4elements.river.artifacts.resources.Resources;
21 import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType;
21 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; 22 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo;
22 import org.dive4elements.river.utils.Formatter;
23 23
24 /** 24 /**
25 * @author Domenico Nardi Tironi 25 * @author Domenico Nardi Tironi
26 * 26 *
27 */ 27 */
28 public final class ExportContextPDF { 28 public final class ExportContextPDF extends AbstractExportContext {
29 29
30 private NumberFormat kmFormat; 30 public ExportContextPDF(final CallContext context, final AbstractCalculationResults<?> results) {
31 31 super(context, results);
32 /** The CallContext object. */
33 private final CallContext context;
34
35 public ExportContextPDF(final CallContext context) {
36 this.context = context;
37
38 } 32 }
39 33
40 private String msg(final String key) { 34 // TODO: rename
41 return Resources.getMsg(this.context.getMeta(), key, key); 35 public String msgPdf(final SInfoResultType type) {
42 } 36 return type.getPdfHeader(getContext().getMeta());
43
44 private String msg(final String key, final Object... args) {
45 return Resources.getMsg(this.context.getMeta(), key, key, args);
46 } 37 }
47 38
48 public void addJRMetadata(final MetaAndTableJRDataSource source, final String key, final IResultType type) { 39 public void addJRMetadata(final MetaAndTableJRDataSource source, final String key, final IResultType type) {
49 source.addMetaData(key, type.getPdfHeader(this.context.getMeta())); 40 source.addMetaData(key, type.getPdfHeader(getContext().getMeta()));
41 }
42
43 public void addJRMetadata(final MetaAndTableJRDataSource source, final String key, final String msg) {
44 source.addMetaData(key, msg);
50 } 45 }
51 46
52 // *** CUSTOM STUFF that is used multiple times ***/// 47 // *** CUSTOM STUFF that is used multiple times ***///
53 public void addJRMetaDataDefaults(final MetaAndTableJRDataSource source, final AbstractCalculationResults results) { 48 public void addJRMetaDataDefaults(final MetaAndTableJRDataSource source) {
54 49
55 source.addMetaData("header", msg(I18NStrings.CSV_META_HEADER_RESULT_LABEL)); 50 source.addMetaData("header", msg(I18NStrings.CSV_META_HEADER_RESULT_LABEL));
56 source.addMetaData("calcMode", results.getCalcModeLabel()); 51 source.addMetaData("calcMode", getResults().getCalcModeLabel());
57 52
58 source.addMetaData("version_label", msg(I18NStrings.CSV_META_VERSION_LABEL)); 53 source.addMetaData("version_label", msg(I18NStrings.CSV_META_VERSION_LABEL));
59 source.addMetaData("version", FLYS.VERSION); 54 source.addMetaData("version", FLYS.VERSION);
60 55
61 source.addMetaData("user_label", msg(I18NStrings.CSV_META_USER_LABEL)); 56 source.addMetaData("user_label", msg(I18NStrings.CSV_META_USER_LABEL));
62 source.addMetaData("user", results.getUser()); 57 source.addMetaData("user", getResults().getUser());
63 58
64 final Locale locale = Resources.getLocale(this.context.getMeta()); 59 final Locale locale = Resources.getLocale(getContext().getMeta());
65 final DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale); 60 final DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
66 source.addMetaData("date_label", msg(I18NStrings.CSV_META_CREATION_LABEL)); 61 source.addMetaData("date_label", msg(I18NStrings.CSV_META_CREATION_LABEL));
67 source.addMetaData("date", df.format(new Date())); 62 source.addMetaData("date", df.format(new Date()));
68 } 63 }
69 64
70 public void addJRMetaDataUSINFO(final MetaAndTableJRDataSource source, final AbstractCalculationResults results) { 65 public void addJRMetaDataUSINFO(final MetaAndTableJRDataSource source) {
71 66
72 /* general metadata */ 67 /* general metadata */
73 addJRMetaDataDefaults(source, results); 68 addJRMetaDataDefaults(source);
74 69
75 final RiverInfo river = results.getRiver(); 70 final RiverInfo river = getResults().getRiver();
76 final String wstUnitName = river.getWstUnit(); 71 final String wstUnitName = river.getWstUnit();
77 72
78 source.addMetaData("river_label", msg(I18NStrings.CSV_META_RIVER_LABEL)); 73 source.addMetaData("river_label", msg(I18NStrings.CSV_META_RIVER_LABEL));
79 source.addMetaData("river", river.getName()); 74 source.addMetaData("river", river.getName());
80 source.addMetaData("river_unit", wstUnitName); 75 source.addMetaData("river_unit", wstUnitName);
81 76
82 final DoubleRange calcRange = results.getCalcRange(); 77 final DoubleRange calcRange = getResults().getCalcRange();
83 final NumberFormat kmFormatter = getKmFormatter(); 78 final NumberFormat kmFormatter = getKmFormatter();
84 final String rangeValue = String.format("%s - %s", kmFormatter.format(calcRange.getMinimumDouble()), kmFormatter.format(calcRange.getMaximumDouble())); 79 final String rangeValue = String.format("%s - %s", kmFormatter.format(calcRange.getMinimumDouble()), kmFormatter.format(calcRange.getMaximumDouble()));
85 source.addMetaData("range_label", msg(I18NStrings.CSV_META_RANGE_LABEL)); 80 source.addMetaData("range_label", msg(I18NStrings.CSV_META_RANGE_LABEL));
86 source.addMetaData("range", rangeValue); 81 source.addMetaData("range", rangeValue);
87
88 /* column headings */
89 // source.addMetaData("station_header", GeneralResultType.station.getPdfHeader(this.context.getMeta()));
90
91 // moved to *result
92 /* column headings */
93 // source.addMetaData("flowdepth_header", SInfoResultType.flowdepth.getPdfHeader(this.context.getMeta()));
94 // source.addMetaData("flowdepth_tkh_header", SInfoResultType.flowdepthtkh.getPdfHeader(this.context.getMeta()));
95 // source.addMetaData("tkh_header", SInfoResultType.tkh.getPdfHeader(this.context.getMeta()));
96 // source.addMetaData("waterlevel_header", SInfoResultType.waterlevel.getPdfHeader(this.context.getMeta()));
97 // source.addMetaData("discharge_header", SInfoResultType.discharge.getPdfHeader(this.context.getMeta()));
98 // source.addMetaData("waterlevel_name_header", SInfoResultType.waterlevelLabel.getPdfHeader(this.context.getMeta()));
99 // source.addMetaData("gauge_header", SInfoResultType.gaugeLabel.getPdfHeader(this.context.getMeta()));
100 // source.addMetaData("bedheight_header", SInfoResultType.meanBedHeight.getPdfHeader(this.context.getMeta()));
101 // source.addMetaData("sounding_name_header", SInfoResultType.soundingLabel.getPdfHeader(this.context.getMeta()));
102 // source.addMetaData("location_header", SInfoResultType.location.getPdfHeader(this.context.getMeta()));
103 }
104
105 // copy from AbstractExporter TODO merge with ExportContextCSV
106 protected NumberFormat getKmFormatter() {
107
108 if (this.kmFormat == null) {
109 this.kmFormat = Formatter.getWaterlevelKM(this.context);
110 }
111 return this.kmFormat;
112 } 82 }
113 } 83 }

http://dive4elements.wald.intevation.org