diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixLongitudinalAnalysisFacet.java @ 3610:66f539df4e8b

Issue 716. FixA: Spilt reference and analysis period themes into one theme for each event. flys-artifacts/trunk@5239 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Thu, 23 Aug 2012 08:49:37 +0000
parents e3c7a3228bc2
children
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixLongitudinalAnalysisFacet.java	Wed Aug 22 14:51:19 2012 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixLongitudinalAnalysisFacet.java	Thu Aug 23 08:49:37 2012 +0000
@@ -1,22 +1,16 @@
 package de.intevation.flys.artifacts.model.fixings;
 
+import org.apache.log4j.Logger;
+
 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.states.DefaultState.ComputeType;
-
 import de.intevation.flys.utils.KMIndex;
 
-import org.apache.log4j.Logger;
-
 /**
  * Facet to show average W values for Q sectors.
  *
@@ -63,7 +57,6 @@
 
         if (artifact instanceof FLYSArtifact) {
             FLYSArtifact flys = (FLYSArtifact)artifact;
-            FixAnalysisAccess access = new FixAnalysisAccess(flys);
 
             CalculationResult res =
                 (CalculationResult) flys.compute(context,
@@ -73,13 +66,26 @@
             FixAnalysisResult result = (FixAnalysisResult) res.getData();
 
             KMIndex<AnalysisPeriod []> kmPeriods = result.getAnalysisPeriods();
-
             if (kmPeriods == null) {
                 logger.warn("No analysis periods found.");
                 return null;
             }
+            int periodNdx = index >> 8;
+            int qwdNdx = index & 255;
+            KMIndex<QWD> resPeriods =
+                    new KMIndex<QWD>();
+            for (KMIndex.Entry<AnalysisPeriod[]> entry: kmPeriods) {
+                AnalysisPeriod ap = entry.getValue()[periodNdx];
+                QWD[] qwds = ap.qwds;
+                for(int i = 0; i < qwds.length; i++) {
+                    if(qwds[i].getIndex() == qwdNdx) {
+                        resPeriods.add(entry.getKm(), qwds[i]);
+                    }
+                }
+            }
 
-            return kmPeriods;
+
+            return resPeriods;
         }
         else {
             logger.warn("Artifact is no instance of FLYSArtifact.");

http://dive4elements.wald.intevation.org