diff flys-artifacts/src/main/java/de/intevation/flys/exports/WaterlevelExporter.java @ 2065:2f5628f0de0e

Part 2 of #125: add gaugename and Q description based on the selected WQ mode. flys-artifacts/trunk@3559 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 02 Jan 2012 09:46:39 +0000
parents 97a25b54eea3
children 2b6a0de47379
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/exports/WaterlevelExporter.java	Mon Jan 02 08:51:45 2012 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/WaterlevelExporter.java	Mon Jan 02 09:46:39 2012 +0000
@@ -28,6 +28,7 @@
 import de.intevation.flys.artifacts.resources.Resources;
 
 import de.intevation.flys.utils.FLYSUtils;
+import de.intevation.flys.utils.FLYSUtils.WQ_MODE;
 import de.intevation.flys.utils.Formatter;
 
 
@@ -190,12 +191,15 @@
     protected void writeCSVData(CSVWriter writer) {
         logger.info("WaterlevelExporter.writeData");
 
+        WQ_MODE mode    = FLYSUtils.getWQMode((FLYSArtifact)master);
+        boolean atGauge = mode == WQ_MODE.QGAUGE || mode == WQ_MODE.WGAUGE;
+
         writeCSVMeta(writer);
-        writeCSVHeader(writer);
+        writeCSVHeader(writer, atGauge);
 
         for (WQKms[] tmp: data) {
             for (WQKms wqkms: tmp) {
-                wQKms2CSV(writer, wqkms);
+                wQKms2CSV(writer, wqkms, atGauge);
             }
         }
     }
@@ -310,21 +314,31 @@
     }
 
 
-    protected void writeCSVHeader(CSVWriter writer) {
+    protected void writeCSVHeader(CSVWriter writer, boolean atGauge) {
         logger.info("WaterlevelExporter.writeCSVHeader");
 
-        writer.writeNext(new String[] {
-            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),
-            msg(CSV_LOCATION_HEADER, DEFAULT_CSV_LOCATION_HEADER),
-            msg(CSV_GAUGE_HEADER, DEFAULT_CSV_GAUGE_HEADER)
-        });
+        if (atGauge) {
+            writer.writeNext(new String[] {
+                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),
+                msg(CSV_LOCATION_HEADER, DEFAULT_CSV_LOCATION_HEADER),
+                msg(CSV_GAUGE_HEADER, DEFAULT_CSV_GAUGE_HEADER)
+            });
+        }
+        else {
+            writer.writeNext(new String[] {
+                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_LOCATION_HEADER, DEFAULT_CSV_LOCATION_HEADER)
+            });
+        }
     }
 
 
-    protected void wQKms2CSV(CSVWriter writer, WQKms wqkms) {
+    protected void wQKms2CSV(CSVWriter writer, WQKms wqkms, boolean atGauge) {
         logger.debug("WaterlevelExporter.wQKms2CSV");
 
         NumberFormat kmf = getKmFormatter();
@@ -334,19 +348,35 @@
         int      size   = wqkms.size();
         double[] result = new double[3];
 
-        FLYSArtifact flys = (FLYSArtifact) master;
+        FLYSArtifact flys  = (FLYSArtifact) master;
+        String       gauge = FLYSUtils.getGaugename(flys);
+        String       desc  = "";
+
+        if (flys instanceof WINFOArtifact) {
+            desc = getColumnTitle((WINFOArtifact)flys, wqkms);
+        }
 
         for (int i = 0; i < size; i ++) {
             result = wqkms.get(i, result);
 
-            writer.writeNext(new String[] {
-                kmf.format(result[2]),
-                wf.format(result[0]),
-                qf.format(result[1]),
-                "", // Bezeichnung
-                FLYSUtils.getLocationDescription(flys, result[2]),
-                "" // Bezugspegel
-            });
+            if (atGauge) {
+                writer.writeNext(new String[] {
+                    kmf.format(result[2]),
+                    wf.format(result[0]),
+                    qf.format(result[1]),
+                    desc,
+                    FLYSUtils.getLocationDescription(flys, result[2]),
+                    gauge
+                });
+            }
+            else {
+                writer.writeNext(new String[] {
+                    kmf.format(result[2]),
+                    wf.format(result[0]),
+                    qf.format(result[1]),
+                    FLYSUtils.getLocationDescription(flys, result[2])
+                });
+            }
         }
     }
 

http://dive4elements.wald.intevation.org