felix@2743: package de.intevation.flys.artifacts.model; felix@2743: felix@2743: import java.util.List; felix@2743: import java.awt.geom.Point2D; felix@2743: felix@2743: import org.apache.log4j.Logger; felix@2743: felix@2743: import de.intevation.artifacts.Artifact; felix@2743: import de.intevation.artifacts.CallContext; felix@2743: import de.intevation.artifacts.DataProvider; felix@2743: felix@2743: import de.intevation.flys.artifacts.StaticWKmsArtifact; felix@2743: import de.intevation.flys.artifacts.model.FacetTypes; felix@2743: felix@2743: /** felix@2743: * Facet to access a point felix@2743: */ felix@2743: public class RelativePointFacet felix@2743: extends BlackboardDataFacet felix@2743: implements FacetTypes { felix@2743: felix@2743: private static Logger logger = Logger.getLogger(RelativePointFacet.class); felix@2743: felix@2743: /** Trivial Constructor. */ felix@2743: public RelativePointFacet(String description) { felix@2743: this(RELATIVE_POINT, description); felix@2743: } felix@2743: felix@2743: public RelativePointFacet(String name, String description) { felix@2743: this.name = name; felix@2743: this.description = description; felix@2743: this.index = 0; felix@2743: } felix@2743: felix@2743: felix@2743: /** felix@2743: * Returns the data this facet requires. felix@2743: * felix@2743: * @param artifact the owner artifact. felix@2743: * @param context the CallContext (ignored). felix@2743: * felix@2743: * @return the data. felix@2743: */ felix@2743: @Override felix@2743: public Object getData(Artifact artifact, CallContext context) { felix@2743: /* CrossSectionWaterLineFacet: felix@2743: List providers = context. felix@2743: getDataProvider(CrossSectionFacet.BLACKBOARD_CS_MASTER_DATA); felix@2743: if (providers.size() < 1) { felix@2743: logger.warn("Could not find Cross-Section data provider."); felix@2743: return new Lines.LineData(new double[][] {}, 0d, 0d); felix@2743: } felix@2743: felix@2743: Object crossSection = providers.get(0) felix@2743: .provideData(CrossSectionFacet.BLACKBOARD_CS_MASTER_DATA, null, context); felix@2743: felix@2743: WaterLineArtifact winfo = (WaterLineArtifact)artifact; felix@2743: */ felix@2743: // Find out whether we live in a duration curve context, there we would felix@2743: // provide only a single point. felix@2743: List providers = context. felix@2743: getDataProvider("durationcurve"); felix@2743: if (providers.size() < 1) { felix@2743: logger.debug("Could not find durationcurve data provider."); felix@2743: //return new Lines.LineData(new double[][] {}, 0d, 0d); felix@2743: } felix@2743: else { felix@2743: Object crossSection = providers.get(0) felix@2743: .provideData(CrossSectionFacet.BLACKBOARD_CS_MASTER_DATA, null, context); felix@2743: felix@2743: } felix@2743: felix@2743: StaticWKmsArtifact staticData = felix@2743: (StaticWKmsArtifact) artifact; felix@2743: //return staticData.getWKms(0); felix@2743: return new Point2D.Double(10d,180d); felix@2743: } felix@2743: felix@2743: felix@2743: /** felix@2743: * Create a deep copy of this Facet. felix@2743: * @return a deep copy. felix@2743: */ felix@2743: @Override felix@2743: public RelativePointFacet deepCopy() { felix@2743: RelativePointFacet copy = new RelativePointFacet(description); felix@2743: copy.set(this); felix@2743: return copy; felix@2743: } felix@2743: } felix@2743: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :