diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java @ 3556:afc7bfb4800b

Use the new infrastructure to figure out if a facet should be initially active or not. flys-artifacts/trunk@5152 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Sun, 29 Jul 2012 11:04:06 +0000
parents fc351f12b906
children c3cd414982fe
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java	Sat Jul 28 21:48:15 2012 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java	Sun Jul 29 11:04:06 2012 +0000
@@ -2,6 +2,10 @@
 
 import de.intevation.artifactdatabase.data.StateData;
 
+import de.intevation.artifactdatabase.state.Facet;
+import de.intevation.artifactdatabase.state.FacetActivity;
+
+import de.intevation.artifacts.Artifact;
 import de.intevation.artifacts.CallContext;
 
 import de.intevation.artifacts.common.utils.StringUtils;
@@ -75,6 +79,33 @@
     /** The default step width between the start end end kilometer. */
     public static final double DEFAULT_KM_STEPS = 0.1;
 
+    private static final String [] INACTIVES = new String[] {
+        LONGITUDINAL_Q,
+        DURATION_Q
+    };
+
+    static {
+        // TODO: Move to configuration.
+        FacetActivity.Registry.getInstance().register(
+            ARTIFACT_NAME,
+            new FacetActivity() {
+                @Override
+                public boolean isInitialActive(
+                    Artifact artifact,
+                    Facet    facet,
+                    String   outputName
+                ) {
+                    String fname = facet.getName();
+                    if ((fname.equals(COMPUTED_DISCHARGE_MAINVALUES_Q)
+                    ||   fname.equals(COMPUTED_DISCHARGE_MAINVALUES_W))
+                    && outputName.equals("computed_discharge_curve")) {
+                        return false;
+                    }
+                    return !StringUtils.contains(fname, INACTIVES);
+
+                }
+            });
+    }
 
     /**
      * The default constructor.
@@ -1144,40 +1175,6 @@
         return values.toNativeArray();
     }
 
-
-    /**
-     * Determines Facets initial disposition regarding activity (think of
-     * selection in Client ThemeList GUI). This will be checked one time
-     * when the facet enters a collections describe document.
-     *
-     * @param facetName name of the facet.
-     * @param index     index of the facet.
-     * @return 0 if not active
-     */
-    @Override
-    public int getInitialFacetActivity(String outputName, String facetName, int index) {
-
-        logger.debug("WINFOArtifact.active?: "
-            + outputName
-            + "/"
-            + facetName);
-
-        if (facetName.equals(COMPUTED_DISCHARGE_MAINVALUES_Q) ||
-             facetName.equals(COMPUTED_DISCHARGE_MAINVALUES_W)
-             && outputName.equals("computed_discharge_curve"))
-            {
-                return 0;
-            }
-
-        return StringUtils.contains(facetName, INACTIVES) ? 0 : 1;
-    }
-
-    private static final String [] INACTIVES = new String[] {
-        LONGITUDINAL_Q,
-        DURATION_Q
-    };
-
-
     /**
      * Returns the WstValueTable of current river.
      */

http://dive4elements.wald.intevation.org