diff flys-artifacts/src/main/java/de/intevation/flys/exports/ATWriter.java @ 5086:4f65d833680f dami

Merge Default onto Dami branch. Dami is now temporarily a public merge branch to fix problems created by the merge.
author Andre Heinecke <aheinecke@intevation.de>
date Mon, 25 Feb 2013 11:50:13 +0100
parents 7669747d22f2
children a929d9a9fa1e
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/exports/ATWriter.java	Mon Feb 25 11:46:36 2013 +0100
+++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/ATWriter.java	Mon Feb 25 11:50:13 2013 +0100
@@ -3,7 +3,10 @@
 import java.io.IOException;
 import java.io.Writer;
 import java.io.PrintWriter;
+import java.math.BigDecimal;
 
+import java.text.DateFormat;
+import java.util.Date;
 import java.util.Locale;
 
 import de.intevation.artifacts.CallMeta;
@@ -31,6 +34,9 @@
     public static final String I18N_AT_HEADER =
         "export.discharge.curve.at.header";
 
+    public static final String I18N_AT_GAUGE_HEADER =
+        "export.discharge.curve.at.gauge.header";
+
     public static final String EMPTY = "         ";
 
     protected double minW;
@@ -105,28 +111,59 @@
     }
 
 
+    protected static void printGaugeHeader(
+        PrintWriter out,
+        CallMeta    callMeta,
+        String      river,
+        double      km,
+        String      gName,
+        BigDecimal  datum,
+        Date        date
+    ) {
+        DateFormat f = DateFormat.getDateInstance();
+        out.print(Resources.getMsg(
+            callMeta,
+            I18N_AT_GAUGE_HEADER,
+            I18N_AT_GAUGE_HEADER,
+            new Object[] { river, gName, f.format(date), datum } ));
+        out.print("\r\n");
+    }
+
     protected static void printHeader(
         PrintWriter out,
         CallMeta    callMeta,
         String      river,
         double      km
     ) {
-        out.println(Resources.getMsg(
+        out.print(Resources.getMsg(
             callMeta,
             I18N_AT_HEADER,
             I18N_AT_HEADER,
             new Object[] { river, km } ));
+        out.print("\r\n");
     }
 
-
-    public void write(Writer writer, CallMeta meta, String river, double km)
+    public void write(
+        Writer writer,
+        CallMeta meta,
+        String river,
+        double km,
+        String gName,
+        BigDecimal datum,
+        Date date,
+        double scale)
     throws IOException
     {
         PrintWriter out = new PrintWriter(writer);
 
         // a header is required, because the desktop version of FLYS will skip
         // the first row.
-        printHeader(out, meta, river, km);
+        if (gName != null) {
+            printGaugeHeader(out, meta, river, km, gName, datum, date);
+        }
+        else {
+            printHeader(out, meta, river, km);
+        }
 
         double rest = (minW * 100.0) % 10.0;
 
@@ -140,7 +177,7 @@
         int col = 0;
         for (double w = startW; w <= maxW; w += 0.01) {
             if (col == 0) {
-                out.printf(Locale.US, "%8d", (int)Math.round(w*100.0));
+                out.printf(Locale.US, "%8d", (int)Math.round(w * scale));
             }
 
             if (w < minW) {
@@ -151,13 +188,13 @@
             }
 
             if (++col >= COLUMNS) {
-                out.println();
+                out.print("\r\n");
                 col = 0;
             }
         }
 
         if (col > 0) {
-            out.println();
+            out.print("\r\n");
         }
 
         out.flush();

http://dive4elements.wald.intevation.org