diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/ComputationRangeState.java @ 1712:7e19449d7826

#253 Modified the title creation of chart curves - titles will now equal the Facet's description. flys-artifacts/trunk@2984 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 17 Oct 2011 10:47:36 +0000
parents 022f62c75878
children 9144e5a5027b
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/ComputationRangeState.java	Mon Oct 17 08:45:26 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/ComputationRangeState.java	Mon Oct 17 10:47:36 2011 +0000
@@ -1,5 +1,6 @@
 package de.intevation.flys.artifacts.states;
 
+import java.util.Date;
 import java.util.List;
 
 import org.apache.log4j.Logger;
@@ -15,12 +16,16 @@
 import de.intevation.artifactdatabase.data.StateData;
 import de.intevation.artifactdatabase.state.Facet;
 
+import de.intevation.flys.model.DischargeTable;
+import de.intevation.flys.model.Gauge;
 import de.intevation.flys.model.River;
+import de.intevation.flys.model.TimeInterval;
 
 import de.intevation.flys.artifacts.FLYSArtifact;
 import de.intevation.flys.artifacts.WINFOArtifact;
 import de.intevation.flys.artifacts.model.CalculationResult;
 import de.intevation.flys.artifacts.model.FacetTypes;
+import de.intevation.flys.artifacts.model.GaugesFactory;
 import de.intevation.flys.artifacts.model.RiverFactory;
 import de.intevation.flys.artifacts.model.WaterlevelFacet;
 import de.intevation.flys.artifacts.model.WQKms;
@@ -173,7 +178,7 @@
         String stateID = winfo.getCurrentStateId();
 
         for (int i = 0; i < wqkms.length; ++i) {
-            String name = wqkms[i].getName();
+            String name = getSeriesName(context, wqkms[i].getName());
             facets.add(new WaterlevelFacet(
                 i, DISCHARGE_CURVE, name, ComputeType.FEED, stateID, hash));
         }
@@ -182,6 +187,47 @@
         return res;
     }
 
+    protected String getSeriesName(CallContext cc, String gaugeName) {
+        Gauge gauge = GaugesFactory.getGauge(gaugeName);
+
+        if (gauge == null) {
+            logger.warn("Cannot determine Gauge for name: " + gaugeName);
+            return gaugeName;
+        }
+
+        List<DischargeTable> dts = gauge.getDischargeTables();
+
+        for (DischargeTable dt: dts) {
+            if (dt.getKind() == 0) {
+                TimeInterval ti = dt.getTimeInterval();
+
+                Date start = ti.getStartTime();
+                Date end   = ti.getStopTime();
+
+                String name  = gauge.getName();
+
+                if (end == null) {
+                    Object[] args = new Object[] { name, start };
+                    return Resources.getMsg(
+                        cc.getMeta(),
+                        "chart.discharge.curve.curve.valid.from",
+                        "",
+                        args);
+                }
+                else {
+                    Object[] args = new Object[] { name, start, end };
+                    return Resources.getMsg(
+                        cc.getMeta(),
+                        "chart.discharge.curve.curve.valid.range",
+                        "",
+                        args);
+                }
+            }
+        }
+
+        return gauge.getName();
+    }
+
 
     @Override
     protected double[] getMinMax(Artifact artifact) {

http://dive4elements.wald.intevation.org