comparison artifacts/src/main/java/org/dive4elements/river/exports/ChartExportHelper.java @ 7607:ef99781bcec7

(issue1667) Remove duplicate points in the same series in Diagram CSV export
author Andre Heinecke <aheinecke@intevation.de>
date Wed, 27 Nov 2013 18:50:21 +0100
parents 491b645123b6
children 9509359c8db8
comparison
equal deleted inserted replaced
7606:424c3d84e119 7607:ef99781bcec7
341 protected static void writeCSVData( 341 protected static void writeCSVData(
342 CSVWriter writer, XYDataset data, NumberFormat format) { 342 CSVWriter writer, XYDataset data, NumberFormat format) {
343 int series = data.getSeriesCount(); 343 int series = data.getSeriesCount();
344 for (int i = 0; i < series; i++) { 344 for (int i = 0; i < series; i++) {
345 int items = data.getItemCount(i); 345 int items = data.getItemCount(i);
346 double lastX = java.lang.Double.MAX_VALUE;
347 double lastY = java.lang.Double.MAX_VALUE;
348
346 for (int j = 0; j < items; j++) { 349 for (int j = 0; j < items; j++) {
347 log.debug("write data: " + data.getX(i, j) + ", " + data.getY(i, j)); 350 Number x = data.getX(i, j);
351 Number y = data.getY(i, j);
352 double xVal = data.getXValue(i, j);
353 double yVal = data.getYValue(i, j);
354
355 if (lastX == xVal && lastY == yVal) {
356 // comparing equality is ok here as we want
357 // to find data duplicates like they are added
358 // for example by the StyledSeriesBuilder in
359 // addStepPointsKmQ
360 log.debug("removing duplicate point in series");
361 continue;
362 }
363 lastX = xVal;
364 lastY = yVal;
365
366 log.debug("write data: " + x + ", " + y);
367
348 368
349 /* 369 /*
350 // Skip (NaN,NaN) datapoints. 370 // Skip (NaN,NaN) datapoints.
351 if (java.lang.Double.isNaN(data.getYValue(i,j)) 371 if (java.lang.Double.isNaN(data.getYValue(i,j))
352 && java.lang.Double.isNaN(data.getXValue(i,j))) { 372 && java.lang.Double.isNaN(data.getXValue(i,j))) {
356 376
357 String xString; 377 String xString;
358 String yString; 378 String yString;
359 379
360 try { 380 try {
361 xString = java.lang.Double.isNaN(data.getXValue(i,j)) 381 xString = java.lang.Double.isNaN(xVal)
362 ? "" 382 ? ""
363 : format.format(data.getX(i, j)); 383 : format.format(x);
364 yString = java.lang.Double.isNaN(data.getYValue(i, j)) 384 yString = java.lang.Double.isNaN(yVal)
365 ? "" 385 ? ""
366 : format.format(data.getY(i, j)); 386 : format.format(y);
367 } 387 }
368 catch (NumberFormatException nfe) { 388 catch (NumberFormatException nfe) {
369 xString = data.getX(i, j).toString(); 389 xString = x.toString();
370 yString = data.getY(i, j).toString(); 390 yString = y.toString();
371 } 391 }
372 writer.writeNext(new String[] { 392 writer.writeNext(new String[] {
373 xString, 393 xString,
374 yString}); 394 yString});
375 } 395 }

http://dive4elements.wald.intevation.org