Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/CrossSectionFacet.java @ 1967:27bb2e24f7f8
Preparations for better CrossSection diagrams.
flys-artifacts/trunk@3378 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Fri, 09 Dec 2011 15:57:32 +0000 |
parents | 51e59f221333 |
children | 98f3ef8da857 |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/CrossSectionFacet.java Fri Dec 09 15:53:24 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/CrossSectionFacet.java Fri Dec 09 15:57:32 2011 +0000 @@ -1,5 +1,8 @@ package de.intevation.flys.artifacts.model; +import java.util.ArrayList; +import java.util.List; + import org.apache.log4j.Logger; import de.intevation.artifacts.Artifact; @@ -8,22 +11,26 @@ import de.intevation.artifactdatabase.state.DefaultFacet; import de.intevation.artifactdatabase.state.Facet; -import de.intevation.flys.artifacts.WINFOArtifact; +import de.intevation.flys.artifacts.CrossSectionArtifact; import de.intevation.flys.artifacts.states.DefaultState.ComputeType; /** - * Trival Facet for Cross Sections. + * Trival Facet for Cross Sections (profiles). */ public class CrossSectionFacet extends DefaultFacet implements FacetTypes { + public static String BLACKBOARD_CS_MASTER_DATA + = "crosssection.masterprofile.data"; + private static Logger logger = Logger.getLogger(CrossSectionFacet.class); protected ComputeType type; + /** Trivial constructor, set (maybe localized) description. */ public CrossSectionFacet(int idx, String description) { super(idx, CROSS_SECTION, description); @@ -31,15 +38,53 @@ } + /** Tell world we know about crosssection masters data and its index. */ + public List getDataProviderKeys(Artifact art) { + CrossSectionArtifact artifact = (CrossSectionArtifact) art; + List keys = new ArrayList(); + if (artifact.isMaster()) { + keys.add(BLACKBOARD_CS_MASTER_DATA); + } + return keys; + } + + /** - * Gets dummy data. + * Can provide the master cross section lines or its index. + * @param artifact crosssection-artifact + * @param key will respond on BLACKBOARD_CS_MASTER_DATA + * @param param ignored + * @param context ignored + * @return data from artifact (cross section master track). */ - public Object getData(Artifact artifact, CallContext context) { + public Object provideBlackboardData(Artifact artifact, + Object key, + Object param, + CallContext context + ) { + CrossSectionArtifact crossSection = (CrossSectionArtifact) artifact; + + if (key.equals(BLACKBOARD_CS_MASTER_DATA)) { + return crossSection.searchCrossSectionLine(); + } + else { + logger.warn("Cannot provide data for key: " + key); + return null; + } + } + + + /** + * Gets Cross Section (profile). + * @param art artifact to get data from. + * @param context ignored + */ + public Object getData(Artifact art, CallContext context) { logger.debug("Get data for cross section"); - WINFOArtifact winfo = (WINFOArtifact)artifact; + CrossSectionArtifact artifact = (CrossSectionArtifact)art; - return winfo.getCrossSectionData(); + return artifact.getCrossSectionData(); } @@ -52,4 +97,3 @@ } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : -