# HG changeset patch # User Felix Wolfsteller # Date 1349167664 -7200 # Node ID 87aafd2c643a8aca48110b7da4968382ee4222ae # Parent 7f8d92873d58ecf0daec3e8b0d58e666da0eeab5# Parent 0be65bc65ceecbdafaf34c9e14e045c1ebebfd2f Merged. diff -r 0be65bc65cee -r 87aafd2c643a flys-artifacts/ChangeLog --- a/flys-artifacts/ChangeLog Tue Oct 02 10:38:57 2012 +0200 +++ b/flys-artifacts/ChangeLog Tue Oct 02 10:47:44 2012 +0200 @@ -1,3 +1,17 @@ +2012-10-02 Felix Wolfsteller + + * flys-artifacts/src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java + (setup): Deal with ids from datacage-doc, expose a data-item with the + annotationtypename. + + * flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/AnnotationFacet.java + (getData): filter annotations given by typename, if available. + +2012-10-02 Felix Wolfsteller + + * doc/conf/meta-data.xml: Show "per-type" annotations in + longitudinal-sections DC. + 2012-10-01 Felix Wolfsteller * flys-artifacts/src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java, diff -r 0be65bc65cee -r 87aafd2c643a flys-artifacts/doc/conf/meta-data.xml --- a/flys-artifacts/doc/conf/meta-data.xml Tue Oct 02 10:38:57 2012 +0200 +++ b/flys-artifacts/doc/conf/meta-data.xml Tue Oct 02 10:47:44 2012 +0200 @@ -535,6 +535,25 @@ + + + + + SELECT id AS anno_id, + name AS anno_description + FROM annotation_types + + + + + + + + + + + + @@ -650,6 +669,7 @@ + diff -r 0be65bc65cee -r 87aafd2c643a flys-artifacts/src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java Tue Oct 02 10:38:57 2012 +0200 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java Tue Oct 02 10:47:44 2012 +0200 @@ -9,6 +9,7 @@ import org.apache.log4j.Logger; import de.intevation.artifacts.Artifact; +import de.intevation.artifacts.ArtifactFactory; import de.intevation.artifacts.ArtifactNamespaceContext; import de.intevation.artifacts.CallContext; import de.intevation.artifacts.CallMeta; @@ -37,6 +38,23 @@ /** The name of the artifact. */ public static final String ARTIFACT_NAME = "annotation"; + @Override + public void setup( + String identifier, + ArtifactFactory factory, + Object context, + CallMeta callMeta, + Document data) + { + logger.debug("AnnotationArtifact.setup"); + String filter = StaticFLYSArtifact.getDatacageIDValue(data); + String[] splits = filter.split(":"); + if (splits.length > 1) { + addStringData("nameFilter", splits[1]); + } + super.setup(identifier, factory, context, callMeta, data); + } + /** Get river, setup Facets. */ @Override protected void initialize(Artifact artifact, Object context, @@ -63,6 +81,10 @@ } } + public String getFilterName() { + return getDataAsString("nameFilter"); + } + public double[] getDistance() { /** TODO In initialize(), access maximal range of river (via diff -r 0be65bc65cee -r 87aafd2c643a flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/AnnotationFacet.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/AnnotationFacet.java Tue Oct 02 10:38:57 2012 +0200 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/AnnotationFacet.java Tue Oct 02 10:47:44 2012 +0200 @@ -70,11 +70,17 @@ FastAnnotations fas = LocationProvider.getAnnotations(riverName); + String filterName = annotationArtifact.getFilterName(); + + FastAnnotations.Filter filter = (filterName == null) + ? FastAnnotations.IS_POINT + : new FastAnnotations.NameFilter(filterName); + List xy = new ArrayList(fas.size()); for (Iterator iter = - fas.filter(FastAnnotations.IS_POINT); iter.hasNext();) { + fas.filter(filter); iter.hasNext();) { FastAnnotations.Annotation fa = iter.next(); xy.add(new StickyAxisAnnotation(