diff artifacts/src/main/java/org/dive4elements/river/artifacts/states/SQRelation.java @ 8264:4d99606a844e

SQ relation overview is now a single chart containing all fractions. * Added new facet types. * Add new facets for the overview chart. * Removed generator code for the old overview.
author Raimund Renkert <rrenkert@intevation.de>
date Fri, 12 Sep 2014 14:55:42 +0200
parents af13ceeba52a
children e8283197d889
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/states/SQRelation.java	Fri Sep 12 08:42:41 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/states/SQRelation.java	Fri Sep 12 14:55:42 2014 +0200
@@ -89,6 +89,25 @@
         }
     };
 
+    public static final String [][] OV_FACET_NAMES = {
+        { SQ_A_CURVE_OV, SQ_B_CURVE_OV, SQ_C_CURVE_OV,
+          SQ_D_CURVE_OV, SQ_E_CURVE_OV, SQ_F_CURVE_OV
+        },
+        { SQ_A_MEASUREMENT_OV, SQ_B_MEASUREMENT_OV, SQ_C_MEASUREMENT_OV,
+          SQ_D_MEASUREMENT_OV, SQ_E_MEASUREMENT_OV, SQ_F_MEASUREMENT_OV
+        },
+        { SQ_A_OUTLIER_OV, SQ_B_OUTLIER_OV, SQ_C_OUTLIER_OV,
+          SQ_D_OUTLIER_OV, SQ_E_OUTLIER_OV, SQ_F_OUTLIER_OV
+        },
+        { SQ_A_OUTLIER_CURVE_OV, SQ_B_OUTLIER_CURVE_OV, SQ_C_OUTLIER_CURVE_OV,
+          SQ_D_OUTLIER_CURVE_OV, SQ_E_OUTLIER_CURVE_OV, SQ_F_OUTLIER_CURVE_OV
+        },
+        { SQ_A_OUTLIER_MEASUREMENT_OV, SQ_B_OUTLIER_MEASUREMENT_OV,
+          SQ_C_OUTLIER_MEASUREMENT_OV, SQ_D_OUTLIER_MEASUREMENT_OV,
+          SQ_E_OUTLIER_MEASUREMENT_OV, SQ_F_OUTLIER_MEASUREMENT_OV
+        }
+    };
+
 
     static {
         // Active/deactivate facets.
@@ -109,6 +128,12 @@
                         name, FACET_NAMES[OUTLIER_INDEX])
                     ||  StringUtils.contains(
                         name, FACET_NAMES[MEASURREMENT_INDEX])
+                    ||  StringUtils.contains(
+                        name, OV_FACET_NAMES[CURVE_INDEX])
+                    ||  StringUtils.contains(
+                        name, OV_FACET_NAMES[OUTLIER_INDEX])
+                    ||  StringUtils.contains(
+                        name, OV_FACET_NAMES[MEASURREMENT_INDEX])
                     ) {
                         // TODO: Only the last should be active.
                         return Boolean.TRUE;
@@ -118,6 +143,10 @@
                         name, FACET_NAMES[OUTLIER_CURVE_INDEX])
                      || StringUtils.contains(
                         name, FACET_NAMES[OUTLIER_MEASUREMENT_INDEX])
+                     || StringUtils.contains(
+                         name, OV_FACET_NAMES[OUTLIER_CURVE_INDEX])
+                     || StringUtils.contains(
+                         name, OV_FACET_NAMES[OUTLIER_MEASUREMENT_INDEX])
                     ) {
                         return Boolean.FALSE;
                     }
@@ -181,20 +210,6 @@
 
         CallMeta meta    = context.getMeta();
         String   stateId = getID();
-        for (int i = 0; i < 6; i++) {
-            container.add(new SQOverviewFacet(
-                i,
-                i,
-                "sq_chart_overview",
-                Resources.getMsg(
-                    meta,
-                    I18N_FACET_CURVE,
-                    I18N_FACET_CURVE
-                ),
-                hash,
-                getID()
-            ));
-        }
         for (int res = 0, n = sqr.length; res < n; res++) {
 
             for (int i = 0; i < SQResult.NUMBER_FRACTIONS; i++) {
@@ -218,6 +233,20 @@
                     stateId
                 ));
 
+                container.add(new SQCurveFacet(
+                    res,
+                    i,
+                    getFractionOverviewFacetname(CURVE_INDEX, i),
+                    sqr[res].getFractionName(i) + " - " +
+                    Resources.getMsg(
+                        meta,
+                        I18N_FACET_CURVE,
+                        I18N_FACET_CURVE
+                    ),
+                    hash,
+                    stateId
+                ));
+
                 for (int j = 0, C = result.numIterations()-1; j < C; j++) {
 
                     Object [] round = new Object [] { j + 1 };
@@ -237,6 +266,20 @@
                         index,
                         i,
                         getFractionFacetname(OUTLIER_INDEX, i),
+                            Resources.getMsg(
+                                meta,
+                                I18N_FACET_OUTLIERS,
+                                I18N_FACET_OUTLIERS,
+                                round
+                            ),
+                        hash,
+                        stateId
+                    ));
+                    container.add(new SQOutlierFacet(
+                        index,
+                        i,
+                        getFractionOverviewFacetname(OUTLIER_INDEX, i),
+                        sqr[res].getFractionName(i) + " - " +
                         Resources.getMsg(
                             meta,
                             I18N_FACET_OUTLIERS,
@@ -260,6 +303,20 @@
                         hash,
                         stateId
                     ));
+                    container.add(new SQOutlierCurveFacet(
+                        index,
+                        i,
+                        getFractionOverviewFacetname(OUTLIER_CURVE_INDEX, i),
+                        sqr[res].getFractionName(i) + " - " +
+                        Resources.getMsg(
+                            meta,
+                            I18N_FACET_OUTLIER_CURVE,
+                            I18N_FACET_OUTLIER_CURVE,
+                            round
+                        ),
+                        hash,
+                        stateId
+                    ));
 
                     container.add(new SQOutlierMeasurementFacet(
                         index,
@@ -274,6 +331,20 @@
                         hash,
                         stateId
                     ));
+                    container.add(new SQOutlierMeasurementFacet(
+                        index,
+                        i,
+                        getFractionOverviewFacetname(OUTLIER_MEASUREMENT_INDEX, i),
+                        sqr[res].getFractionName(i) + " - " +
+                        Resources.getMsg(
+                            meta,
+                            I18N_FACET_OUTLIER_MEASUREMENT,
+                            I18N_FACET_OUTLIER_MEASUREMENT,
+                            round
+                        ),
+                        hash,
+                        stateId
+                    ));
                 } // for all outliers
 
                 container.add(new SQMeasurementFacet(
@@ -288,6 +359,19 @@
                     hash,
                     stateId
                 ));
+                container.add(new SQMeasurementFacet(
+                    res,
+                    i,
+                    getFractionOverviewFacetname(MEASURREMENT_INDEX, i),
+                    sqr[res].getFractionName(i) + " - " +
+                    Resources.getMsg(
+                        meta,
+                        I18N_FACET_MEASUREMENTS,
+                        I18N_FACET_MEASUREMENTS
+                    ),
+                    hash,
+                    stateId
+                ));
             } // for all fractions
         } // for all results
     }
@@ -299,5 +383,13 @@
         type %= FACET_NAMES.length;
         return FACET_NAMES[type][idx % FACET_NAMES[type].length];
     }
+
+    protected static String getFractionOverviewFacetname(int type, int idx) {
+        if (log.isDebugEnabled()) {
+            log.debug("getFractionOverviewFacetname(): " + type + " | " + idx);
+        }
+        type %= OV_FACET_NAMES.length;
+        return OV_FACET_NAMES[type][idx % OV_FACET_NAMES[type].length];
+    }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org