Mercurial > dive4elements > river
diff artifacts/src/main/java/org/dive4elements/river/jfree/RiverAnnotation.java @ 5864:f2e46a668fe6
River artifacts: Renamed FLYSAnnotation to RiverAnnotation.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Sun, 28 Apr 2013 15:04:44 +0200 |
parents | artifacts/src/main/java/org/dive4elements/river/jfree/FLYSAnnotation.java@4897a58c8746 |
children | af13ceeba52a |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/artifacts/src/main/java/org/dive4elements/river/jfree/RiverAnnotation.java Sun Apr 28 15:04:44 2013 +0200 @@ -0,0 +1,115 @@ +/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU AGPL (>=v3) + * and comes with ABSOLUTELY NO WARRANTY! Check out the + * documentation coming with Dive4Elements River for details. + */ + +package org.dive4elements.river.jfree; + +import org.dive4elements.river.artifacts.model.HYKFactory; + +import java.util.Collections; +import java.util.List; + +import org.jfree.chart.annotations.XYTextAnnotation; +import org.w3c.dom.Document; + +/** + * List of Text- Annotations (Sticky to one axis or in space) + * and 'HYK'-Annotations (rectangles/areas) with name and theme. + */ +public class RiverAnnotation { + + /** 'Other' Text Annotations. */ + protected List<XYTextAnnotation> textAnnotations; + + /** Annotations at axis. */ + protected List<StickyAxisAnnotation> axisTextAnnotations; + + /** Areas at axis. */ + protected List<HYKFactory.Zone> boxes; + + /** Styling information. */ + protected Document theme; + + /** Chart-legend information. */ + protected String label; + + + public RiverAnnotation(String label, List<StickyAxisAnnotation> annotations) { + this(label, annotations, null, null); + } + + + /** Create annotations, parameter might be null. */ + public RiverAnnotation(String label, List<StickyAxisAnnotation> annotations, + List<HYKFactory.Zone> bAnnotations + ) { + this(label, annotations, bAnnotations, null); + } + + + /** Create annotations, parameter might be null. */ + public RiverAnnotation(String label, List<StickyAxisAnnotation> annotations, + List<HYKFactory.Zone> bAnnotations, Document theme + ) { + this.label = label; + this.axisTextAnnotations = (annotations != null) + ? annotations + : Collections.<StickyAxisAnnotation>emptyList(); + this.boxes = (bAnnotations != null) + ? bAnnotations + : Collections.<HYKFactory.Zone>emptyList(); + this.textAnnotations = Collections.<XYTextAnnotation>emptyList(); + this.setTheme(theme); + } + + + public void setLabel(String label) { + this.label = label; + } + + public String getLabel() { + return label; + } + + public List<StickyAxisAnnotation> getAxisTextAnnotations() { + return axisTextAnnotations; + } + + public void setTextAnnotations(List<XYTextAnnotation> annotations) { + this.textAnnotations = annotations; + } + + /** Set the "other" Text Annotations. */ + public List<XYTextAnnotation> getTextAnnotations() { + return textAnnotations; + } + + public List<HYKFactory.Zone> getBoxes() { + return boxes; + } + + public void setTheme(Document theme) { + this.theme = theme; + } + + public Document getTheme() { + return theme; + } + + /** + * Set sticky axis of all axisTextAnnotations + * to the X axis if it is currently Y, and vice versa. + * @return this + */ + public RiverAnnotation flipStickyAxis() { + for (StickyAxisAnnotation saa: axisTextAnnotations) { + saa.flipStickyAxis(); + } + return this; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :