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

http://dive4elements.wald.intevation.org