# HG changeset patch # User Felix Wolfsteller # Date 1313066911 0 # Node ID 10bafb4f46cc1bc569dfbff1b71a732c5bf08042 # Parent a60d2a46f0a8b45468c464f52ad476a3fdd40d85 Made (kind of dummy-) Annotations in LongitudinalSection diagrams visible. flys-artifacts/trunk@2488 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r a60d2a46f0a8 -r 10bafb4f46cc flys-artifacts/ChangeLog --- a/flys-artifacts/ChangeLog Thu Aug 11 12:43:00 2011 +0000 +++ b/flys-artifacts/ChangeLog Thu Aug 11 12:48:31 2011 +0000 @@ -1,3 +1,12 @@ +2011-08-11 Felix Wolfsteller + + Made Annotations visible in LongitudinalSection diagrams. + + * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java, + src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: + Register new Facet Type, let LongitudinalSectionGenerator include + Annotations in diagram (yet unfiltered and independent of river). + 2011-08-11 Felix Wolfsteller * doc/conf/conf.xml, diff -r a60d2a46f0a8 -r 10bafb4f46cc flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java Thu Aug 11 12:43:00 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java Thu Aug 11 12:48:31 2011 +0000 @@ -12,6 +12,7 @@ String LONGITUDINAL_W = "longitudinal_section.w"; String LONGITUDINAL_Q = "longitudinal_section.q"; + String LONGITUDINAL_ANNOTATION = "longitudinal_section.annotations"; String COMPUTED_DISCHARGE_Q = "computed_discharge_curve.q"; diff -r a60d2a46f0a8 -r 10bafb4f46cc flys-artifacts/src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java --- a/flys-artifacts/src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java Thu Aug 11 12:43:00 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java Thu Aug 11 12:48:31 2011 +0000 @@ -1,7 +1,12 @@ package de.intevation.flys.exports; +import java.util.ArrayList; +import java.util.List; + import org.apache.log4j.Logger; +import org.jfree.chart.annotations.XYLineAnnotation; +import org.jfree.chart.annotations.XYTextAnnotation; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.axis.ValueAxis; @@ -21,6 +26,7 @@ import de.intevation.flys.artifacts.model.FacetTypes; import de.intevation.flys.artifacts.model.WQKms; +import de.intevation.flys.model.Annotation; /** * An OutGenerator that generates discharge curves. @@ -58,9 +64,11 @@ protected boolean inverted; + protected List annotations; public LongitudinalSectionGenerator() { super(); + annotations = new ArrayList(); } @@ -90,6 +98,22 @@ chart.addSubtitle(new TextTitle(subtitle)); } + @Override + public JFreeChart generateChart() { + JFreeChart c = super.generateChart(); + XYPlot p = (XYPlot) c.getPlot(); + + for (Annotation a: annotations) { + double pos = a.getRange().getA().doubleValue(); + XYTextAnnotation ta = new XYTextAnnotation(a.getPosition().getValue(), pos, 140); + ta.setRotationAngle(270.0 / (Math.PI * 2.0)); + p.addAnnotation(ta); + XYLineAnnotation la = new XYLineAnnotation(pos, 0, pos, 140); + p.addAnnotation(la); + } + return c; + } + protected String getXAxisLabel() { return msg(I18N_XAXIS_LABEL, I18N_XAXIS_LABEL_DEFAULT); @@ -167,6 +191,9 @@ else if (name.equals(LONGITUDINAL_Q)) { doQOut((WQKms) f.getData(artifact, context), attr); } + else if (name.equals(LONGITUDINAL_ANNOTATION)) { + doAnnotationsOut(f.getData(artifact, context), attr); + } else { logger.warn("Unknown facet name: " + name); return; @@ -174,6 +201,12 @@ } + protected void doAnnotationsOut(Object o, Document theme) { + logger.debug("LongitudinalSectionGenerator.doAnnotationsOut"); + this.annotations = (List) o; + } + + /** * Process the output for W facets in a longitudinal section curve. *