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()});

http://dive4elements.wald.intevation.org