diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/DischargeTablesOverview.java @ 5379:61bf64b102bc mapgenfix

Merge with default branch
author Christian Lins <christian.lins@intevation.de>
date Fri, 22 Mar 2013 11:25:54 +0100
parents 02f6741f80d4
children 2fe120e1e4df
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/DischargeTablesOverview.java	Wed Mar 06 14:14:15 2013 +0100
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/DischargeTablesOverview.java	Fri Mar 22 11:25:54 2013 +0100
@@ -13,6 +13,7 @@
 import org.hibernate.Session;
 import org.jfree.chart.ChartFactory;
 import org.jfree.chart.JFreeChart;
+import org.jfree.chart.plot.Marker;
 import org.jfree.chart.plot.PlotOrientation;
 import org.jfree.chart.plot.XYPlot;
 import org.jfree.data.xy.XYSeries;
@@ -24,14 +25,17 @@
 import de.intevation.artifacts.CallMeta;
 import de.intevation.artifacts.GlobalContext;
 import de.intevation.flys.artifacts.model.DischargeTables;
+import de.intevation.flys.artifacts.model.GaugeRange;
 import de.intevation.flys.artifacts.model.GaugesFactory;
 import de.intevation.flys.artifacts.resources.Resources;
 import de.intevation.flys.backend.SessionHolder;
 import de.intevation.flys.model.DischargeTable;
 import de.intevation.flys.model.Gauge;
+import de.intevation.flys.model.MainValue;
 import de.intevation.flys.model.TimeInterval;
 
 
+/** Generate Discharge Table chart. */
 public class DischargeTablesOverview extends AbstractChartService {
 
     private static final Logger log = Logger
@@ -123,6 +127,11 @@
         plot.setDomainGridlinesVisible(true);
         plot.setRangeGridlinesVisible(true);
 
+        applyMainValueMarkers(
+            plot,
+            gauge,
+            callMeta);
+
         return chart;
     }
 
@@ -148,6 +157,36 @@
         return series;
     }
 
+
+    /** Add domain markers to plot that indicate mainvalues. */
+    protected static void applyMainValueMarkers(
+        XYPlot   plot,
+        Gauge    gauge,
+        CallMeta meta
+    ) {
+        String river = gauge.getRiver().getName();
+        double km    = gauge.getStation().doubleValue();
+
+        // Get Gauge s mainvalues.
+        List<MainValue> mainValues = gauge.getMainValues();
+        for (MainValue mainValue : mainValues) {
+            if (mainValue.getMainValue().getType().getName().equals("Q")) {
+                // Its a Q main value.
+                Marker m = FixingsKMChartService.createQSectorMarker(
+                    mainValue.getValue().doubleValue(),
+                    mainValue.getMainValue().getName());
+                plot.addDomainMarker(m);
+            }
+            else if (mainValue.getMainValue().getType().getName().equals("W")) {
+                // Its a W main value.
+                Marker m = FixingsKMChartService.createQSectorMarker(
+                    mainValue.getValue().doubleValue(),
+                    mainValue.getMainValue().getName());
+                plot.addRangeMarker(m);
+            }
+        }
+    }
+
     protected String createSeriesTitle(CallMeta callMeta, DischargeTable dt)
         throws IllegalArgumentException {
         TimeInterval timeInterval = dt.getTimeInterval();
@@ -259,3 +298,4 @@
         return dts;
     }
 }
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org