Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/exports/ChartExportHelper.java @ 7047:b5e9b8b5c8d6
issue1493: Use other numberformat for csv data from diagram.
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Thu, 19 Sep 2013 09:16:52 +0200 |
parents | 50b9959330de |
children | 99527ef3f151 |
comparison
equal
deleted
inserted
replaced
7046:50b9959330de | 7047:b5e9b8b5c8d6 |
---|---|
303 } | 303 } |
304 catch(UnsupportedEncodingException uee) { | 304 catch(UnsupportedEncodingException uee) { |
305 log.warn("Wrong encoding for CSV export."); | 305 log.warn("Wrong encoding for CSV export."); |
306 return; | 306 return; |
307 } | 307 } |
308 | |
309 NumberFormat format = Formatter.getCSVFormatter(context); | |
310 | |
308 XYPlot plot = chart.getXYPlot(); | 311 XYPlot plot = chart.getXYPlot(); |
309 int count = plot.getDatasetCount(); | 312 int count = plot.getDatasetCount(); |
310 for (int i = 0; i < count; i++) { | 313 for (int i = 0; i < count; i++) { |
311 XYDataset data = plot.getDataset(i); | 314 XYDataset data = plot.getDataset(i); |
312 int scount = data.getSeriesCount(); | 315 int scount = data.getSeriesCount(); |
313 for (int j = 0; j < scount; j++) { | 316 for (int j = 0; j < scount; j++) { |
314 Comparable seriesKey = data.getSeriesKey(j); | 317 Comparable seriesKey = data.getSeriesKey(j); |
315 log.debug("series key: " + seriesKey.toString()); | 318 log.debug("series key: " + seriesKey.toString()); |
316 writeCSVHeader(writer, seriesKey.toString()); | 319 writeCSVHeader(writer, seriesKey.toString()); |
317 writeCSVData(writer, data, context); | 320 writeCSVData(writer, data, format); |
318 } | 321 } |
319 } | 322 } |
320 try { | 323 try { |
321 writer.close(); | 324 writer.close(); |
322 } | 325 } |
332 writer.writeNext(new String[] {"#"}); | 335 writer.writeNext(new String[] {"#"}); |
333 writer.writeNext(new String[] {"X", "Y"}); | 336 writer.writeNext(new String[] {"X", "Y"}); |
334 } | 337 } |
335 | 338 |
336 | 339 |
337 protected static void writeCSVData(CSVWriter writer, XYDataset data, CallContext context) { | 340 /** Get x/y data from axis set and write it, on pair per line. */ |
341 protected static void writeCSVData( | |
342 CSVWriter writer, XYDataset data, NumberFormat format) { | |
338 int series = data.getSeriesCount(); | 343 int series = data.getSeriesCount(); |
339 // TODO: Instantiate at other place, use | |
340 // better formatter. | |
341 NumberFormat numberFormat = Formatter.getWaterlevelW(context); | |
342 for (int i = 0; i < series; i++) { | 344 for (int i = 0; i < series; i++) { |
343 int items = data.getItemCount(i); | 345 int items = data.getItemCount(i); |
344 for (int j = 0; j < items; j++) { | 346 for (int j = 0; j < items; j++) { |
345 log.debug("write data: " + data.getX(i, j) + ", " + data.getY(i, j)); | 347 log.debug("write data: " + data.getX(i, j) + ", " + data.getY(i, j)); |
346 try { | 348 try { |
347 writer.writeNext(new String[] { | 349 writer.writeNext(new String[] { |
348 numberFormat.format(data.getX(i, j)), | 350 format.format(data.getX(i, j)), |
349 numberFormat.format(data.getY(i, j))}); | 351 format.format(data.getY(i, j))}); |
350 } | 352 } |
351 catch (NumberFormatException nfe) { | 353 catch (NumberFormatException nfe) { |
352 writer.writeNext(new String[] { | 354 writer.writeNext(new String[] { |
353 data.getX(i, j).toString(), | 355 data.getX(i, j).toString(), |
354 data.getY(i, j).toString()}); | 356 data.getY(i, j).toString()}); |