diff flys-artifacts/src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java @ 2183:a79d5cd26083

Render labels of manual points in a very primitive manner. flys-artifacts/trunk@3787 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Fri, 27 Jan 2012 11:01:13 +0000
parents 3f90f4d37c8d
children fc86fcfe503e
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java	Fri Jan 27 10:45:34 2012 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java	Fri Jan 27 11:01:13 2012 +0000
@@ -1,5 +1,7 @@
 package de.intevation.flys.exports;
 
+import java.util.ArrayList;
+import java.util.List;
 
 import org.apache.log4j.Logger;
 
@@ -12,6 +14,8 @@
 
 import org.w3c.dom.Document;
 
+import org.jfree.chart.annotations.XYTextAnnotation;
+
 import de.intevation.artifactdatabase.state.ArtifactAndFacet;
 import de.intevation.artifactdatabase.state.Facet;
 
@@ -22,6 +26,7 @@
 import de.intevation.flys.artifacts.model.WKms;
 import de.intevation.flys.artifacts.model.WQKms;
 
+import de.intevation.flys.jfree.CollisionFreeXYTextAnnotation;
 import de.intevation.flys.jfree.FLYSAnnotation;
 import de.intevation.flys.jfree.StyledAreaSeriesCollection;
 import de.intevation.flys.jfree.StyledXYSeries;
@@ -632,20 +637,29 @@
     ) {
         XYSeries series = new StyledXYSeries(seriesName, theme);
 
+        // Add text annotations for single points.
+        List<XYTextAnnotation> xy = new ArrayList<XYTextAnnotation>();
+
         try {
             JSONArray points = new JSONArray((String) o);
             for (int i = 0; i < points.length(); i++) {
                 JSONArray array = points.getJSONArray(i);
-                double x = array.getDouble(0);
-                double y = array.getDouble(1);
+                double x    = array.getDouble(0);
+                double y    = array.getDouble(1);
+                String name = array.getString(2);
                 //logger.debug(" x " + x + " y " + y );
                 series.add(x, y, false);
+                xy.add(new CollisionFreeXYTextAnnotation(name, x, y));
             }
         }
         catch(JSONException e){
             logger.error("Could not decode json.");
         }
+        
+        FLYSAnnotation annotations = new FLYSAnnotation(seriesName, null, null, theme);
+        annotations.setTextAnnotations(xy);
 
+        doAnnotations(annotations, null, theme, visible);
         addAxisSeries(series, YAXIS.W.idx, visible);
     }
 }

http://dive4elements.wald.intevation.org