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 :

http://dive4elements.wald.intevation.org