Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/exports/ChartExportHelper.java @ 7046:50b9959330de
issue971: Bring a formatter in (a bad) place.
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Wed, 18 Sep 2013 18:40:52 +0200 |
parents | 1f6c0915a58d |
children | b5e9b8b5c8d6 |
comparison
equal
deleted
inserted
replaced
7045:1f6c0915a58d | 7046:50b9959330de |
---|---|
26 | 26 |
27 import java.io.IOException; | 27 import java.io.IOException; |
28 import java.io.OutputStream; | 28 import java.io.OutputStream; |
29 import java.io.OutputStreamWriter; | 29 import java.io.OutputStreamWriter; |
30 import java.io.UnsupportedEncodingException; | 30 import java.io.UnsupportedEncodingException; |
31 | |
32 import java.text.NumberFormat; | |
33 | |
31 import org.jfree.chart.ChartRenderingInfo; | 34 import org.jfree.chart.ChartRenderingInfo; |
32 | 35 |
33 import javax.imageio.ImageIO; | 36 import javax.imageio.ImageIO; |
34 | 37 |
35 import au.com.bytecode.opencsv.CSVWriter; | 38 import au.com.bytecode.opencsv.CSVWriter; |
44 import org.jfree.data.xy.XYDataset; | 47 import org.jfree.data.xy.XYDataset; |
45 | 48 |
46 import org.dive4elements.artifacts.CallContext; | 49 import org.dive4elements.artifacts.CallContext; |
47 | 50 |
48 import org.dive4elements.artifacts.common.utils.XMLUtils; | 51 import org.dive4elements.artifacts.common.utils.XMLUtils; |
52 | |
53 import org.dive4elements.river.utils.Formatter; | |
49 | 54 |
50 | 55 |
51 /** | 56 /** |
52 * This class is a helper class which supports some methods to export charts | 57 * This class is a helper class which supports some methods to export charts |
53 * into specific formats. | 58 * into specific formats. |
307 int scount = data.getSeriesCount(); | 312 int scount = data.getSeriesCount(); |
308 for (int j = 0; j < scount; j++) { | 313 for (int j = 0; j < scount; j++) { |
309 Comparable seriesKey = data.getSeriesKey(j); | 314 Comparable seriesKey = data.getSeriesKey(j); |
310 log.debug("series key: " + seriesKey.toString()); | 315 log.debug("series key: " + seriesKey.toString()); |
311 writeCSVHeader(writer, seriesKey.toString()); | 316 writeCSVHeader(writer, seriesKey.toString()); |
312 writeCSVData(writer, data); | 317 writeCSVData(writer, data, context); |
313 } | 318 } |
314 } | 319 } |
315 try { | 320 try { |
316 writer.close(); | 321 writer.close(); |
317 } | 322 } |
327 writer.writeNext(new String[] {"#"}); | 332 writer.writeNext(new String[] {"#"}); |
328 writer.writeNext(new String[] {"X", "Y"}); | 333 writer.writeNext(new String[] {"X", "Y"}); |
329 } | 334 } |
330 | 335 |
331 | 336 |
332 protected static void writeCSVData(CSVWriter writer, XYDataset data) { | 337 protected static void writeCSVData(CSVWriter writer, XYDataset data, CallContext context) { |
333 int series = data.getSeriesCount(); | 338 int series = data.getSeriesCount(); |
339 // TODO: Instantiate at other place, use | |
340 // better formatter. | |
341 NumberFormat numberFormat = Formatter.getWaterlevelW(context); | |
334 for (int i = 0; i < series; i++) { | 342 for (int i = 0; i < series; i++) { |
335 int items = data.getItemCount(i); | 343 int items = data.getItemCount(i); |
336 for (int j = 0; j < items; j++) { | 344 for (int j = 0; j < items; j++) { |
337 log.debug("write data: " + data.getX(i, j) + ", " + data.getY(i, j)); | 345 log.debug("write data: " + data.getX(i, j) + ", " + data.getY(i, j)); |
338 writer.writeNext(new String[] { | 346 try { |
339 data.getX(i, j).toString(), | 347 writer.writeNext(new String[] { |
340 data.getY(i, j).toString()}); | 348 numberFormat.format(data.getX(i, j)), |
349 numberFormat.format(data.getY(i, j))}); | |
350 } | |
351 catch (NumberFormatException nfe) { | |
352 writer.writeNext(new String[] { | |
353 data.getX(i, j).toString(), | |
354 data.getY(i, j).toString()}); | |
355 } | |
341 } | 356 } |
342 } | 357 } |
343 } | 358 } |
344 | 359 |
345 | 360 |