Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/ReferenceCurveFacet.java @ 2256:dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
flys-artifacts/trunk@3910 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Fri, 03 Feb 2012 18:03:26 +0000 |
parents | fdeb6d61c24c |
children | d4330439be3a |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/ReferenceCurveFacet.java Fri Feb 03 15:22:56 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/ReferenceCurveFacet.java Fri Feb 03 18:03:26 2012 +0000 @@ -1,5 +1,8 @@ package de.intevation.flys.artifacts.model; +import java.util.List; +import java.util.Arrays; + import de.intevation.artifactdatabase.state.Facet; import de.intevation.artifacts.Artifact; @@ -15,6 +18,11 @@ public class ReferenceCurveFacet extends DataFacet { + public static final String BLACK_BOARD_KEY = "reference.curve.axis.scale"; + + public static final List BLACK_BOARD_KEY_LIST = + Arrays.asList(new String [] { BLACK_BOARD_KEY }); + private static Logger log = Logger.getLogger(ReferenceCurveFacet.class); public ReferenceCurveFacet() { @@ -42,18 +50,16 @@ " /stateId: " + stateId); } + return getWW(artifact, context); + } + + protected WW getWW(Artifact artifact, CallContext context) { FLYSArtifact winfo = (FLYSArtifact)artifact; CalculationResult res = (CalculationResult) winfo.compute(context, hash, stateId, type, false); - return getInternalData((WW [])res.getData()); - } - - /** To be overwritten by normalized reference curve. */ - protected Object getInternalData(WW [] wws) { - // Using the ApplyFunctionIterator to unify data processing. - return new WW.ApplyFunctionIterator(wws[index]); + return ((WW [])res.getData())[index]; } @Override @@ -72,5 +78,33 @@ copy.set(this); return copy; } + + @Override + public List getDataProviderKeys(Artifact art) { + return BLACK_BOARD_KEY_LIST; + } + + @Override + public Object provideBlackboardData( + Artifact artifact, + Object key, + Object param, + CallContext context + ) { + if (!key.equals(BLACK_BOARD_KEY)) { + return null; + } + + Object obj = context.getContextValue("reference.curve.axis.scale"); + + if (!(obj instanceof WWAxisTypes)) { + obj = new WWAxisTypes(getWW(artifact, context)); + } + else { + ((WWAxisTypes)obj).classify(getWW(artifact, context)); + } + + return obj; + } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :