Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/exports/WaterlevelExporter.java @ 2068:0cf60d64895c
#370 Added a 'W at gauge' column to CSV exports if 'W at gauge' mode has been selected.
flys-artifacts/trunk@3563 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 02 Jan 2012 13:30:44 +0000 |
parents | 2b6a0de47379 |
children | bda04ae1154f |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/exports/WaterlevelExporter.java Mon Jan 02 11:01:29 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/WaterlevelExporter.java Mon Jan 02 13:30:44 2012 +0000 @@ -58,6 +58,9 @@ public static final String CSV_Q_DESC_HEADER = "export.waterlevel.csv.header.q.desc"; + public static final String CSV_W_DESC_HEADER = + "export.waterlevel.csv.header.w.desc"; + public static final String CSV_LOCATION_HEADER = "export.waterlevel.csv.header.location"; @@ -99,6 +102,7 @@ public static final String DEFAULT_CSV_W_HEADER = "W [NN + m]"; public static final String DEFAULT_CSV_Q_HEADER = "Q [m\u00b3/s]"; public static final String DEFAULT_CSV_Q_DESC_HEADER = "Bezeichnung"; + public static final String DEFAULT_CSV_W_DESC_HEADER = "W/Pegel [cm]"; public static final String DEFAULT_CSV_LOCATION_HEADER = "Lage"; public static final String DEFAULT_CSV_GAUGE_HEADER = "Bezugspegel"; public static final String DEFAULT_CSV_NOT_IN_GAUGE_RANGE = @@ -200,13 +204,14 @@ WQ_MODE mode = FLYSUtils.getWQMode((FLYSArtifact)master); boolean atGauge = mode == WQ_MODE.QGAUGE || mode == WQ_MODE.WGAUGE; + boolean isQ = mode == WQ_MODE.QGAUGE || mode == WQ_MODE.QFREE; writeCSVMeta(writer); - writeCSVHeader(writer, atGauge); + writeCSVHeader(writer, atGauge, isQ); for (WQKms[] tmp: data) { for (WQKms wqkms: tmp) { - wQKms2CSV(writer, wqkms, atGauge); + wQKms2CSV(writer, wqkms, atGauge, isQ); } } } @@ -321,7 +326,11 @@ } - protected void writeCSVHeader(CSVWriter writer, boolean atGauge) { + protected void writeCSVHeader( + CSVWriter writer, + boolean atGauge, + boolean isQ + ) { logger.info("WaterlevelExporter.writeCSVHeader"); if (atGauge) { @@ -329,7 +338,9 @@ msg(CSV_KM_HEADER, DEFAULT_CSV_KM_HEADER), msg(CSV_W_HEADER, DEFAULT_CSV_W_HEADER), msg(CSV_Q_HEADER, DEFAULT_CSV_Q_HEADER), - msg(CSV_Q_DESC_HEADER, DEFAULT_CSV_Q_DESC_HEADER), + (isQ + ? msg(CSV_Q_DESC_HEADER, DEFAULT_CSV_Q_DESC_HEADER) + : msg(CSV_W_DESC_HEADER, DEFAULT_CSV_W_DESC_HEADER)), msg(CSV_LOCATION_HEADER, DEFAULT_CSV_LOCATION_HEADER), msg(CSV_GAUGE_HEADER, DEFAULT_CSV_GAUGE_HEADER) }); @@ -345,7 +356,12 @@ } - protected void wQKms2CSV(CSVWriter writer, WQKms wqkms, boolean atGauge) { + protected void wQKms2CSV( + CSVWriter writer, + WQKms wqkms, + boolean atGauge, + boolean isQ + ) { logger.debug("WaterlevelExporter.wQKms2CSV"); NumberFormat kmf = getKmFormatter(); @@ -366,9 +382,14 @@ double a = gauge.getRange().getA().doubleValue(); double b = gauge.getRange().getB().doubleValue(); - if (flys instanceof WINFOArtifact) { + if (flys instanceof WINFOArtifact && isQ) { desc = getColumnTitle((WINFOArtifact)flys, wqkms); } + else if (!isQ) { + Double value = FLYSUtils.getValueFromWQ(wqkms); + desc = value != null + ? Formatter.getWaterlevelW(context).format(value) : null; + } for (int i = 0; i < size; i ++) { result = wqkms.get(i, result);