diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/fixation/FixAnalysisCompute.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 659c1111db13
children 487a8cb4a222
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/fixation/FixAnalysisCompute.java	Wed Aug 22 14:51:19 2012 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/fixation/FixAnalysisCompute.java	Thu Aug 23 08:49:37 2012 +0000
@@ -1,45 +1,40 @@
 package de.intevation.flys.artifacts.states.fixation;
 
+import java.text.DateFormat;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+import java.util.TreeSet;
+
+import org.apache.log4j.Logger;
+
 import de.intevation.artifactdatabase.state.Facet;
-
 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.DateRange;
 import de.intevation.flys.artifacts.model.FacetTypes;
 import de.intevation.flys.artifacts.model.ReportFacet;
-
+import de.intevation.flys.artifacts.model.fixings.FixAnalysisCalculation;
 import de.intevation.flys.artifacts.model.fixings.FixAnalysisEventsFacet;
 import de.intevation.flys.artifacts.model.fixings.FixAnalysisPeriodsFacet;
+import de.intevation.flys.artifacts.model.fixings.FixAnalysisResult;
 import de.intevation.flys.artifacts.model.fixings.FixAvSectorFacet;
-import de.intevation.flys.artifacts.model.fixings.FixAnalysisCalculation;
 import de.intevation.flys.artifacts.model.fixings.FixDerivateFacet;
 import de.intevation.flys.artifacts.model.fixings.FixDeviationFacet;
 import de.intevation.flys.artifacts.model.fixings.FixLongitudinalAnalysisFacet;
+import de.intevation.flys.artifacts.model.fixings.FixLongitudinalAvSectorFacet;
 import de.intevation.flys.artifacts.model.fixings.FixLongitudinalDeviationFacet;
 import de.intevation.flys.artifacts.model.fixings.FixLongitudinalReferenceFacet;
 import de.intevation.flys.artifacts.model.fixings.FixOutlierFacet;
 import de.intevation.flys.artifacts.model.fixings.FixReferenceEventsFacet;
-import de.intevation.flys.artifacts.model.fixings.FixAnalysisResult;
 import de.intevation.flys.artifacts.model.fixings.FixWQCurveFacet;
-
 import de.intevation.flys.artifacts.resources.Resources;
-
 import de.intevation.flys.artifacts.states.DefaultState;
-
 import de.intevation.flys.utils.IdGenerator;
 
-import java.text.DateFormat;
-
-import java.util.List;
-
-import org.apache.log4j.Logger;
-
 /**
  * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a>
  */
@@ -50,7 +45,7 @@
     /** The log used in this class. */
     private static Logger log = Logger.getLogger(FixAnalysisCompute.class);
 
-    private static final String I18N_REFERENCEPERIOD = "fix.reference.period.events";
+    private static final String I18N_REFERENCEPERIOD = "fix.reference.period.event.short";
 
     private static final String I18N_ANALYSISPERIODS = "fix.analysis.periods";
 
@@ -58,7 +53,7 @@
 
     private static final String I18N_OUTLIER = "fix.outlier";
 
-    private static final String I18N_ANALYSIS = "fix.analysis";
+    private static final String I18N_ANALYSIS = "fix.analysis.short";
 
     private static final String I18N_DEVIATION = "fix.deviation";
 
@@ -109,7 +104,6 @@
         }
 
         FixAnalysisResult fr = (FixAnalysisResult)res.getData();
-
         if (fr == null) {
             return res;
         }
@@ -165,14 +159,14 @@
                         FIX_SECTOR_AVERAGE_DWT + "_" + sectorNdx,
                         description));
                 facets.add(
-                    new FixLongitudinalAnalysisFacet(
+                    new FixLongitudinalAvSectorFacet(
                         facetNdx,
                         FIX_SECTOR_AVERAGE_LS + "_" + sectorNdx,
                         description));
                 // TODO: i18n
                 String dev = "Abweichung: " + description;
                 facets.add(
-                    new FixLongitudinalAnalysisFacet(
+                    new FixLongitudinalAvSectorFacet(
                         facetNdx,
                         FIX_SECTOR_AVERAGE_LS_DEVIATION + "_" + sectorNdx,
                         dev));
@@ -187,17 +181,23 @@
             String eventDesc =
                 Resources.getMsg(context.getMeta(),
                                  I18N_ANALYSIS,
-                                 I18N_ANALYSIS) +
-                ": " + startDate + " - " + endDate;
-            facets.add(new FixAnalysisEventsFacet(i,
-                FIX_ANALYSIS_EVENTS_DWT,
-                eventDesc));
-            facets.add(new FixLongitudinalAnalysisFacet(i,
-                FIX_ANALYSIS_EVENTS_LS,
-                eventDesc));
-            facets.add(new FixAnalysisEventsFacet(i,
-                FIX_ANALYSIS_EVENTS_WQ,
-                eventDesc));
+                                 I18N_ANALYSIS);
+
+            int k = 0;
+            for (Date d: fr.getAnalysisEventsDates(i)) {
+                int anaNdx = i << 8;
+                anaNdx = anaNdx | k;
+                facets.add(new FixAnalysisEventsFacet(anaNdx,
+                    FIX_ANALYSIS_EVENTS_DWT,
+                    eventDesc + (i+1) + " - " + df.format(d)));
+                facets.add(new FixLongitudinalAnalysisFacet(anaNdx,
+                    FIX_ANALYSIS_EVENTS_LS,
+                    eventDesc + (i+1) + " - " + df.format(d)));
+                facets.add(new FixAnalysisEventsFacet(anaNdx,
+                    FIX_ANALYSIS_EVENTS_WQ,
+                    eventDesc + (i+1) +" - " + df.format(d)));
+                k++;
+            }
         }
 
         IdGenerator idg = new IdGenerator(maxId + 1);
@@ -209,16 +209,29 @@
                 I18N_REFERENCEDEVIATION,
                 I18N_REFERENCEDEVIATION);
 
+        TreeSet<Date> dates = fr.getReferenceEventsDates();
+        Iterator<Date> iter = dates.iterator();
+        int i = 0;
+        while (iter.hasNext()) {
+            Date d = iter.next();
+            int refNdx = idg.next() << 8;
+            refNdx |=  i;
+            facets.add(new FixReferenceEventsFacet(refNdx,
+                FIX_REFERENCE_EVENTS_DWT,
+                i18n_ref + " - " + df.format(d)));
+            refNdx = idg.next() << 8;
+            refNdx = refNdx | i;
+            facets.add(new FixLongitudinalReferenceFacet(refNdx,
+                FIX_REFERENCE_EVENTS_LS,
+                i18n_ref + " - " + df.format(d)));
+            refNdx = idg.next() << 8;
+            refNdx |= i;
+            facets.add(new FixReferenceEventsFacet(refNdx,
+                FIX_REFERENCE_EVENTS_WQ,
+                i18n_ref + " - " + df.format(d)));
+            i++;
+        }
 
-        facets.add(new FixReferenceEventsFacet(idg.next(),
-            FIX_REFERENCE_EVENTS_DWT,
-            i18n_ref));
-        facets.add(new FixLongitudinalReferenceFacet(idg.next(),
-            FIX_REFERENCE_EVENTS_LS,
-            i18n_ref));
-        facets.add(new FixReferenceEventsFacet(idg.next(),
-            FIX_REFERENCE_EVENTS_WQ,
-            i18n_ref));
 
         facets.add(new FixLongitudinalDeviationFacet(idg.next(),
             FIX_DEVIATION_LS,

http://dive4elements.wald.intevation.org