# HG changeset patch # User Felix Wolfsteller # Date 1379575012 -7200 # Node ID b5e9b8b5c8d6e553ced3f9ac5add9931d117bb02 # Parent 50b9959330de00b5c2e0b7c51838e7c6a724cfd1 issue1493: Use other numberformat for csv data from diagram. diff -r 50b9959330de -r b5e9b8b5c8d6 artifacts/src/main/java/org/dive4elements/river/exports/ChartExportHelper.java --- a/artifacts/src/main/java/org/dive4elements/river/exports/ChartExportHelper.java Wed Sep 18 18:40:52 2013 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/exports/ChartExportHelper.java Thu Sep 19 09:16:52 2013 +0200 @@ -305,6 +305,9 @@ log.warn("Wrong encoding for CSV export."); return; } + + NumberFormat format = Formatter.getCSVFormatter(context); + XYPlot plot = chart.getXYPlot(); int count = plot.getDatasetCount(); for (int i = 0; i < count; i++) { @@ -314,7 +317,7 @@ Comparable seriesKey = data.getSeriesKey(j); log.debug("series key: " + seriesKey.toString()); writeCSVHeader(writer, seriesKey.toString()); - writeCSVData(writer, data, context); + writeCSVData(writer, data, format); } } try { @@ -334,19 +337,18 @@ } - protected static void writeCSVData(CSVWriter writer, XYDataset data, CallContext context) { + /** Get x/y data from axis set and write it, on pair per line. */ + protected static void writeCSVData( + CSVWriter writer, XYDataset data, NumberFormat format) { int series = data.getSeriesCount(); - // TODO: Instantiate at other place, use - // better formatter. - NumberFormat numberFormat = Formatter.getWaterlevelW(context); for (int i = 0; i < series; i++) { int items = data.getItemCount(i); for (int j = 0; j < items; j++) { log.debug("write data: " + data.getX(i, j) + ", " + data.getY(i, j)); try { writer.writeNext(new String[] { - numberFormat.format(data.getX(i, j)), - numberFormat.format(data.getY(i, j))}); + format.format(data.getX(i, j)), + format.format(data.getY(i, j))}); } catch (NumberFormatException nfe) { writer.writeNext(new String[] { diff -r 50b9959330de -r b5e9b8b5c8d6 artifacts/src/main/java/org/dive4elements/river/utils/Formatter.java --- a/artifacts/src/main/java/org/dive4elements/river/utils/Formatter.java Wed Sep 18 18:40:52 2013 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/utils/Formatter.java Thu Sep 19 09:16:52 2013 +0200 @@ -99,6 +99,10 @@ public static final int SQ_RELATION_B_MAX_DIGITS = 3; public static final int SQ_RELATION_B_MIN_DIGITS = 3; + // OTHER + public static final int CSV_DIAGRAM_DATA_MAX_DIGITS = 3; + public static final int CSV_DIAGRAM_DATA_MIN_DIGITS = 3; + /** * Creates a localized NumberFormatter with given range of decimal digits. * @param m CallMeta to find the locale. @@ -191,6 +195,18 @@ WATERLEVEL_KM_MAX_DIGITS); } + /** + * Returns the number formatter for data exported from diagram (not from + * calculation. + * + * @return the number formatter for csv data from diagra. + */ + public static NumberFormat getCSVFormatter(CallContext context) { + return getFormatter( + context, + CSV_DIAGRAM_DATA_MIN_DIGITS, + CSV_DIAGRAM_DATA_MAX_DIGITS); + } public static NumberFormat getWaterlevelW(CallMeta meta) { return getFormatter(