felix@1026: package de.intevation.flys.artifacts.model; felix@1026: ingo@1679: import java.util.ArrayList; ingo@1677: import java.util.List; ingo@1677: felix@1026: import org.apache.log4j.Logger; felix@1026: ingo@1679: import org.jfree.chart.annotations.XYTextAnnotation; ingo@1679: felix@1026: import de.intevation.artifacts.Artifact; felix@1026: import de.intevation.artifacts.CallContext; felix@1026: felix@1026: import de.intevation.flys.artifacts.AnnotationArtifact; ingo@1677: import de.intevation.flys.jfree.FLYSAnnotation; ingo@1679: import de.intevation.flys.jfree.StickyAxisAnnotation; ingo@1677: ingo@1677: import de.intevation.flys.model.Annotation; felix@1026: felix@1026: import de.intevation.artifactdatabase.state.DefaultFacet; sascha@1061: import de.intevation.artifactdatabase.state.Facet; felix@1026: felix@1026: /** felix@1077: * Facet to access Annotations (landmarks, POIs) of a river. felix@1026: */ felix@1026: public class AnnotationFacet felix@1026: extends DefaultFacet felix@1026: { felix@1026: /** Logger for this class. */ felix@1026: private static final Logger logger = Logger.getLogger(AnnotationFacet.class); felix@1026: felix@1077: felix@1077: /** felix@1077: * Trivial Constructor. felix@1077: */ sascha@1061: public AnnotationFacet() { sascha@1061: } sascha@1061: felix@1026: felix@1026: /** felix@1026: * Trivial Constructor for a AnnotationFacet. felix@1026: * felix@1026: * @param index Database-Index to use. felix@1026: * @param name Name (~type) of Facet. felix@1026: * @param description Description of Facet. felix@1026: */ felix@1026: public AnnotationFacet(int index, String name, String description) { felix@1026: super(index, name, description); felix@1026: } felix@1026: felix@1026: felix@1026: /** felix@1026: * Get List of Annotations for river from Artifact. felix@1026: * felix@1026: * @param artifact (Annotation-)Artifact to query for list of Annotations. felix@1026: * @param context Ignored. felix@1026: */ felix@1026: @Override felix@1026: public Object getData(Artifact artifact, CallContext context) { felix@1077: AnnotationArtifact annotationArtifact = (AnnotationArtifact) artifact; ingo@1677: ingo@1679: List as = annotationArtifact.getAnnotations(); ingo@1679: List xy = new ArrayList(); ingo@1679: ingo@1679: for (Annotation a: as) { ingo@1679: xy.add(new StickyAxisAnnotation( ingo@1679: a.getPosition().getValue(), ingo@1679: (float) a.getRange().getA().doubleValue(), ingo@1679: StickyAxisAnnotation.SimpleAxis.X_AXIS)); ingo@1679: } ingo@1679: ingo@1679: return new FLYSAnnotation(description, xy); felix@1026: } sascha@1061: felix@1077: sascha@1061: @Override sascha@1061: public Facet deepCopy() { sascha@1061: AnnotationFacet copy = new AnnotationFacet(); sascha@1061: copy.set(this); sascha@1061: return copy; sascha@1061: } felix@1026: }