changeset 4317:41cf1172825c

Merged.
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Tue, 30 Oct 2012 07:00:06 +0100
parents c74155ebe3ac (diff) 4c2005e6ac65 (current diff)
children 46511b4d8357
files
diffstat 11 files changed, 132 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/flys-artifacts/doc/conf/artifacts/winfo.xml	Mon Oct 29 15:43:49 2012 +0100
+++ b/flys-artifacts/doc/conf/artifacts/winfo.xml	Tue Oct 30 07:00:06 2012 +0100
@@ -632,6 +632,11 @@
                     <facet name="longitudinal_section.annotations" description="facet.longitudinal_section.annotations"/>
                   </facets>
                 </outputmode>
+                <outputmode name="fix_wq_curve" description="output.fix_wq_curve" mine-type="image/png" type="chart">
+                    <facets>
+                        <facet name="extreme_wq_curve" description="Extreme WQ curve"/>
+                    </facets>
+                </outputmode>
             </outputmodes>
         </state>
 
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java	Mon Oct 29 15:43:49 2012 +0100
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java	Tue Oct 30 07:00:06 2012 +0100
@@ -321,5 +321,7 @@
     String FIX_PARAMETERS = "fix_parameters";
 
     String STATIC_BEDHEIGHT = "static_bedheight";
+
+    String EXTREME_WQ_CURVE = "extreme_wq_curve";
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WQFacet.java	Mon Oct 29 15:43:49 2012 +0100
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WQFacet.java	Tue Oct 30 07:00:06 2012 +0100
@@ -31,10 +31,10 @@
 
 
     /**
-     * Returns the data this facet requires.
+     * Returns the data this facet provides at km given in context.
      *
      * @param artifact the owner artifact.
-     * @param context  the CallContext (ignored).
+     * @param context  the CallContext.
      *
      * @return the data.
      */
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/extreme/Curve.java	Mon Oct 29 15:43:49 2012 +0100
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/extreme/Curve.java	Tue Oct 30 07:00:06 2012 +0100
@@ -16,6 +16,7 @@
 
 import org.apache.log4j.Logger;
 
+/** An extrapolating W/Q function/curve. */
 public class Curve
 implements   Serializable, Function
 {
@@ -63,6 +64,8 @@
         return coeffs;
     }
 
+
+    /** Calculate value at given x. */
     @Override
     public double value(double x) {
         if (x < qs[0]) return Double.NaN;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/extreme/ExtremeCurveFacet.java	Tue Oct 30 07:00:06 2012 +0100
@@ -0,0 +1,104 @@
+package de.intevation.flys.artifacts.model.extreme;
+
+import de.intevation.artifacts.Artifact;
+import de.intevation.artifacts.CallContext;
+
+import de.intevation.flys.artifacts.FLYSArtifact;
+
+import de.intevation.flys.artifacts.access.FixAnalysisAccess;
+
+import de.intevation.flys.artifacts.model.CalculationResult;
+import de.intevation.flys.artifacts.model.DataFacet;
+import de.intevation.flys.artifacts.model.FacetTypes;
+import de.intevation.flys.artifacts.model.Parameters;
+
+import de.intevation.flys.artifacts.states.DefaultState.ComputeType;
+
+import de.intevation.flys.utils.KMIndex;
+
+import org.apache.log4j.Logger;
+
+/**
+ * Facet to show the W|Q values.
+ */
+public class ExtremeCurveFacet
+extends      DataFacet
+implements   FacetTypes {
+
+    /** House logger. */
+    private static Logger logger = Logger.getLogger(ExtremeCurveFacet.class);
+
+
+    /** Trivial Constructor. */
+    public ExtremeCurveFacet() {
+    }
+
+
+    /**
+     * @param description Description of the facet.
+     */
+    public ExtremeCurveFacet(String description) {
+        super(0, EXTREME_WQ_CURVE, description, ComputeType.ADVANCE, null, null);
+    }
+
+
+    public ExtremeCurveFacet(int index, String description) {
+        super(index, EXTREME_WQ_CURVE, description, ComputeType.ADVANCE, null, null);
+    }
+
+
+    /**
+     * Returns the data (a curve/function) this facet provides at km given in context.
+     *
+     * @param artifact the owner artifact.
+     * @param context  the CallContext.
+     *
+     * @return the data.
+     */
+    @Override
+    public Object getData(Artifact artifact, CallContext context) {
+        logger.debug("ExtremeCurveFacet.getData");
+        if (artifact instanceof FLYSArtifact) {
+            FLYSArtifact flys = (FLYSArtifact)artifact;
+
+            CalculationResult res =
+                (CalculationResult) flys.compute(context,
+                                                 ComputeType.ADVANCE,
+                                                 false);
+
+            ExtremeResult result = (ExtremeResult) res.getData();
+            double currentKm =
+                ((Double)context.getContextValue("currentKm")).doubleValue();
+
+            KMIndex<Curve> curves = result.getCurves();
+
+            KMIndex.Entry<Curve> curveEntry = curves.search(currentKm);
+
+            if (curveEntry != null) {
+                logger.debug("A curve at km = " + currentKm);
+                return curveEntry.getValue();
+            }
+            else {
+                logger.debug("No curve at km = " + currentKm);
+                return null;
+            }
+        }
+        else {
+            logger.debug("Not an instance of FLYSArtifact / WINFOArtifact.");
+            return null;
+        }
+    }
+
+
+    /**
+     * Create a deep copy of this Facet.
+     * @return a deep copy.
+     */
+    @Override
+    public ExtremeCurveFacet deepCopy() {
+        ExtremeCurveFacet copy = new ExtremeCurveFacet();
+        copy.set(this);
+        return copy;
+    }
+}
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/extreme/ExtremeResult.java	Mon Oct 29 15:43:49 2012 +0100
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/extreme/ExtremeResult.java	Tue Oct 30 07:00:06 2012 +0100
@@ -6,10 +6,13 @@
 
 import de.intevation.flys.utils.KMIndex;
 
+/** Result from an extreme value (extrapolation) calculation. */
 public class ExtremeResult
 implements   Serializable
 {
+    /** Curves that refer to actual values and a function for extrapolation. */
     protected KMIndex<Curve> curves;
+
     protected WQKms [] wqkms;
 
     public ExtremeResult() {
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixWQCurveFacet.java	Mon Oct 29 15:43:49 2012 +0100
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixWQCurveFacet.java	Tue Oct 30 07:00:06 2012 +0100
@@ -31,6 +31,7 @@
     /** House logger. */
     private static Logger logger = Logger.getLogger(FixWQCurveFacet.class);
 
+
     /** Trivial Constructor. */
     public FixWQCurveFacet() {
     }
@@ -49,10 +50,10 @@
 
 
     /**
-     * Returns the data this facet requires.
+     * Returns the data this facet provides at given km, a function.
      *
      * @param artifact the owner artifact.
-     * @param context  the CallContext (ignored).
+     * @param context  the CallContext.
      *
      * @return the data.
      */
@@ -107,7 +108,7 @@
             return fix;
         }
         else {
-            logger.debug("Not an instance of FixationArtifact.");
+            logger.debug("Not an instance of FLYSArtifact / FixationArtifact.");
             return null;
         }
     }
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/extreme/ExtremeCompute.java	Mon Oct 29 15:43:49 2012 +0100
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/extreme/ExtremeCompute.java	Tue Oct 30 07:00:06 2012 +0100
@@ -15,6 +15,7 @@
 import de.intevation.flys.artifacts.model.WaterlevelFacet;
 import de.intevation.flys.artifacts.model.WQKms;
 
+import de.intevation.flys.artifacts.model.extreme.ExtremeCurveFacet;
 import de.intevation.flys.artifacts.model.extreme.ExtremeCalculation;
 import de.intevation.flys.artifacts.model.extreme.ExtremeResult;
 
@@ -94,9 +95,10 @@
                 i, LONGITUDINAL_Q, nameQ, ComputeType.ADVANCE, id, hash);
 
             // TODO add more facets like:
-            // csv, data, pdf wst facet
+            // csv, data, pdf wst facet, data facet
             // furthermore, waterlevel
             //facets.add(new CrossSectionWaterLineFacet(i, nameW));
+            facets.add(new ExtremeCurveFacet("WQ"));
 
             facets.add(w);
             facets.add(q);
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/NaviChartOutputTab.java	Mon Oct 29 15:43:49 2012 +0100
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/NaviChartOutputTab.java	Tue Oct 30 07:00:06 2012 +0100
@@ -38,6 +38,7 @@
 
 import java.util.Date;
 
+
 /**
  * Tab representing and showing one Chart-output.
  *
@@ -290,5 +291,5 @@
 
         return attr;
     }
-
 }
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
--- a/flys-client/src/main/java/de/intevation/flys/client/shared/model/FixAnalysisArtifact.java	Mon Oct 29 15:43:49 2012 +0100
+++ b/flys-client/src/main/java/de/intevation/flys/client/shared/model/FixAnalysisArtifact.java	Tue Oct 30 07:00:06 2012 +0100
@@ -6,7 +6,7 @@
 
 
 /**
- * The Fixanalysis implementation of an Artifact.
+ * The Fixanalysis implementation of an Artifact (client side).
  *
  * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a>
  */
@@ -17,6 +17,7 @@
 
     protected FixFilter filter;
 
+
     public FixAnalysisArtifact() {
         this.filter = null;
     }
--- a/flys-client/src/main/java/de/intevation/flys/client/shared/model/FixFilter.java	Mon Oct 29 15:43:49 2012 +0100
+++ b/flys-client/src/main/java/de/intevation/flys/client/shared/model/FixFilter.java	Tue Oct 30 07:00:06 2012 +0100
@@ -2,7 +2,7 @@
 
 import java.io.Serializable;
 
-
+/** Probably something like *Access, but from client side. */
 public class FixFilter implements Serializable{
 
     protected String river;
@@ -103,4 +103,4 @@
         return this.events;
     }
 }
-
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org