felix@1085: package de.intevation.flys.artifacts.model; felix@1085: ingo@1679: import java.util.ArrayList; ingo@1679: import java.util.List; ingo@1679: ingo@1679: import org.jfree.chart.annotations.XYTextAnnotation; ingo@1679: felix@1085: import de.intevation.artifacts.Artifact; felix@1085: import de.intevation.artifacts.CallContext; ingo@1679: felix@1085: import de.intevation.artifactdatabase.state.DefaultFacet; ingo@1679: ingo@1679: import de.intevation.flys.artifacts.MainValuesArtifact; felix@1085: import de.intevation.flys.artifacts.model.FacetTypes; ingo@1679: import de.intevation.flys.jfree.FLYSAnnotation; ingo@1679: import de.intevation.flys.jfree.StickyAxisAnnotation; felix@1085: felix@1085: /** felix@1085: * Facet to show Main Q Values. felix@1085: */ felix@1085: public class MainValuesQFacet felix@1085: extends DefaultFacet felix@1085: implements FacetTypes { felix@1085: felix@1085: /** Trivial Constructor. */ felix@1112: public MainValuesQFacet(String description) { felix@1112: this.description = description; felix@1085: name = COMPUTED_DISCHARGE_MAINVALUES_Q; felix@1085: index = 0; felix@1085: } felix@1085: felix@1085: felix@1085: /** felix@1085: * Returns the data this facet requires. felix@1085: * felix@1085: * @param artifact the owner artifact. felix@1085: * @param context the CallContext (ignored). felix@1085: * felix@1085: * @return the data. felix@1085: */ felix@1085: @Override felix@1085: public Object getData(Artifact artifact, CallContext context) { felix@1085: MainValuesArtifact mvArtifact = (MainValuesArtifact) artifact; ingo@1679: ingo@1679: List qs = mvArtifact.getMainValuesQ(); ingo@1679: List xy = new ArrayList(); ingo@1679: ingo@1679: for (NamedDouble q: qs) { ingo@1679: xy.add(new StickyAxisAnnotation( ingo@1679: q.getName(), ingo@1679: (float) q.getValue(), ingo@1679: StickyAxisAnnotation.SimpleAxis.X_AXIS)); ingo@1679: ingo@1679: } ingo@1679: ingo@1679: return new FLYSAnnotation(description, xy); felix@1085: } felix@1085: felix@1085: felix@1085: /** felix@1085: * Create a deep copy of this Facet. felix@1085: * @return a deep copy. felix@1085: */ felix@1085: @Override felix@1085: public MainValuesQFacet deepCopy() { felix@1112: MainValuesQFacet copy = new MainValuesQFacet(description); felix@1085: copy.set(this); felix@1085: return copy; felix@1085: } felix@1085: }