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 W Values. felix@1085: */ felix@1085: public class MainValuesWFacet felix@1085: extends DefaultFacet felix@1085: implements FacetTypes { felix@1085: ingo@3811: /** Do we want MainValues at Gauge (not interpolated)? */ ingo@3811: protected boolean isAtGauge; ingo@3811: felix@1085: /** Trivial Constructor. */ ingo@3811: public MainValuesWFacet(String name, String description, boolean atGauge) { felix@1112: this.description = description; felix@1809: this.name = name; ingo@3811: this.index = 0; ingo@3811: this.isAtGauge = atGauge; 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@3811: List ws = mvArtifact.getMainValuesW(isAtGauge); ingo@1679: List xy = new ArrayList(); ingo@1679: ingo@1679: for (NamedDouble w: ws) { ingo@1679: xy.add(new StickyAxisAnnotation( ingo@1679: w.getName(), ingo@1679: (float) w.getValue(), ingo@1679: StickyAxisAnnotation.SimpleAxis.Y_AXIS)); 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 MainValuesWFacet deepCopy() { ingo@3811: MainValuesWFacet copy = new MainValuesWFacet(this.name, ingo@3811: description, this.isAtGauge); felix@1085: copy.set(this); felix@1085: return copy; felix@1085: } felix@1085: } felix@1809: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :