Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java @ 2029:131842fc6581
Enable basicst area rendering in longitudinal section diagrams.
flys-artifacts/trunk@3491 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Tue, 20 Dec 2011 11:30:00 +0000 |
parents | 3c3693e9c538 |
children | 8e7e56db96a5 |
comparison
equal
deleted
inserted
replaced
2028:f834a6961bb7 | 2029:131842fc6581 |
---|---|
328 (WKms) artifactAndFacet.getData(context), | 328 (WKms) artifactAndFacet.getData(context), |
329 facet, | 329 facet, |
330 attr, | 330 attr, |
331 visible); | 331 visible); |
332 } | 332 } |
333 else if (FacetTypes.IS.AREA(name)) { | |
334 doArea(artifactAndFacet.getData(context), | |
335 artifactAndFacet.getFacetDescription(), | |
336 attr, | |
337 visible); | |
338 | |
339 } | |
333 else { | 340 else { |
334 logger.warn("Unknown facet name: " + name); | 341 logger.warn("Unknown facet name: " + name); |
335 return; | 342 return; |
336 } | 343 } |
337 } | 344 } |
475 | 482 |
476 return prefix != null && prefix.length() > 0 | 483 return prefix != null && prefix.length() > 0 |
477 ? prefix + "(" + name +")" | 484 ? prefix + "(" + name +")" |
478 : name; | 485 : name; |
479 } | 486 } |
487 | |
488 | |
489 /** | |
490 * Do Area out. | |
491 */ | |
492 protected void doArea( | |
493 Object o, | |
494 String seriesName, | |
495 Document theme, | |
496 boolean visible | |
497 ) { | |
498 logger.debug("LongitudinalSectionGenerator.doArea"); | |
499 StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(theme); | |
500 | |
501 // TODO make this more stable. | |
502 Object[] doubles = (Object[]) o; | |
503 XYSeries up = null; | |
504 XYSeries down = null; | |
505 | |
506 if (doubles[1] != null) { | |
507 up = new StyledXYSeries(seriesName, false, theme); | |
508 if (doubles[1] instanceof WQKms) { | |
509 StyledSeriesBuilder.addPoints(up, (WQKms) doubles[1]); | |
510 } | |
511 else if (doubles[1] instanceof double[][]) { | |
512 StyledSeriesBuilder.addPoints(up, (double [][]) doubles[1]); | |
513 } | |
514 else { | |
515 logger.error("Do not know how to deal with (up) area info from: " | |
516 + doubles[1]); | |
517 } | |
518 } | |
519 | |
520 if (doubles[0] != null) { | |
521 // TODO: Sort this out: when the two series have the same name, | |
522 // the renderer (or anything in between) will not work correctly. | |
523 down = new StyledXYSeries(seriesName + " ", false, theme); | |
524 if (doubles[0] instanceof WQKms) { | |
525 StyledSeriesBuilder.addPoints(down, (WQKms) doubles[0]); | |
526 } | |
527 else if (doubles[0] instanceof double[][]) { | |
528 StyledSeriesBuilder.addPoints(down, (double[][]) doubles[0]); | |
529 } | |
530 else { | |
531 logger.error("Do not know how to deal with (down) area info from: " | |
532 + doubles[0]); | |
533 } | |
534 | |
535 } | |
536 | |
537 if (up == null && down != null) { | |
538 area.setMode(StyledAreaSeriesCollection.FILL_MODE.ABOVE); | |
539 down.setKey(seriesName); | |
540 area.addSeries(down); | |
541 } | |
542 else if (up != null && down == null) { | |
543 area.setMode(StyledAreaSeriesCollection.FILL_MODE.UNDER); | |
544 area.addSeries(up); | |
545 } | |
546 else if (up != null && down != null) { | |
547 area.setMode(StyledAreaSeriesCollection.FILL_MODE.BETWEEN); | |
548 area.addSeries(up); | |
549 area.addSeries(down); | |
550 } | |
551 addAreaSeries(area, 0, visible); | |
552 } | |
480 } | 553 } |
481 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : | 554 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |