view flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/map/WMSLayerFacet.java @ 4282:8b4988815974

Added marker for Ws and Qs in Historical Discharge WQ charts. Therefore, the XYChartGenerator got two new methods addDomainMarker(Marker, boolean) and addValueMarker(Marker, boolean). The boolean parameters determine, if the marker should be visible or not. This is analogous to addAxisSeries(XYSeries, int, boolean).
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 29 Oct 2012 05:59:27 +0100
parents 9fac337192c9
children
line wrap: on
line source
package de.intevation.flys.artifacts.model.map;

import com.vividsolutions.jts.geom.Envelope;

import de.intevation.artifactdatabase.state.DefaultFacet;
import de.intevation.artifactdatabase.state.Facet;
import de.intevation.artifacts.Artifact;
import de.intevation.artifacts.ArtifactNamespaceContext;
import de.intevation.artifacts.CallContext;
import de.intevation.artifacts.common.utils.XMLUtils.ElementCreator;
import de.intevation.flys.artifacts.states.DefaultState.ComputeType;
import de.intevation.flys.utils.GeometryUtils;

import java.util.ArrayList;
import java.util.List;

import org.apache.log4j.Logger;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;


public class WMSLayerFacet
extends      DefaultFacet
{
    protected ComputeType  type;
    protected List<String> layers;
    protected String       stateId;
    protected String       hash;
    protected String       url;
    protected Envelope     extent;
    protected Envelope     originalExtent;
    protected String       srid;


    private static final Logger logger = Logger.getLogger(WMSLayerFacet.class);

    public WMSLayerFacet() {
    }


    public WMSLayerFacet(int index, String name, String description) {
        this(index, name, description, ComputeType.FEED, null, null);
    }


    public WMSLayerFacet(
        int         index,
        String      name,
        String      description,
        ComputeType type,
        String      stateId,
        String      hash

    ) {
        super(index, name, description);
        this.layers  = new ArrayList<String>();
        this.type    = type;
        this.stateId = stateId;
        this.hash    = hash;
    }


    public WMSLayerFacet(
        int         index,
        String      name,
        String      description,
        ComputeType type,
        String      stateId,
        String      hash,
        String      url
    ) {
        this(index, name, description, type, stateId, hash);
        this.url = url;
    }


    public void addLayer(String name) {
        if (name != null && name.length() > 0) {
            layers.add(name);
        }
    }


    public List<String> getLayers() {
        return layers;
    }


    public void removeLayer(String layer) {
        if (layers != null) {
            layers.remove(layer);
        }
    }


    public void setExtent(Envelope extent) {
        if (extent != null) {
            this.extent = extent;
        }
        else {
            logger.debug("setExtent(): extent is null");
        }
    }


    public Envelope getExtent() {
        return extent;
    }


    public void setOriginalExtent(Envelope originalExtent) {
        this.originalExtent = originalExtent;
    }


    public Envelope getOriginalExtent() {
        return originalExtent;
    }


    public void setSrid(String srid) {
        if (srid != null) {
            this.srid = srid;
        }
    }


    public String getSrid() {
        return srid;
    }


    @Override
    public Object getData(Artifact artifact, CallContext context) {
        return null;
    }


    @Override
    public Node toXML(Document doc) {
        ElementCreator ec = new ElementCreator(
            doc,
            ArtifactNamespaceContext.NAMESPACE_URI,
            ArtifactNamespaceContext.NAMESPACE_PREFIX);

        Element facet = ec.create("facet");
        ec.addAttr(facet, "description", description, true);
        ec.addAttr(facet, "index", String.valueOf(index), true);
        ec.addAttr(facet, "name", name, true);
        ec.addAttr(facet, "url", url, true);
        ec.addAttr(facet, "layers", layers.get(0), true);
        ec.addAttr(facet, "srid", srid != null ? srid : "", true);
        ec.addAttr(facet, "extent", originalExtent != null
            ? GeometryUtils.jtsBoundsToOLBounds(originalExtent)
            : "", true);
        ec.addAttr(facet, "queryable", String.valueOf(isQueryable()), true);

        return facet;
    }


    public boolean isQueryable() {
        return false;
    }


    @Override
    public Facet deepCopy() {
        WMSLayerFacet copy = new WMSLayerFacet();
        copy.set(this);

        copy.type    = type;
        copy.layers  = new ArrayList<String>(layers);
        copy.stateId = stateId;
        copy.hash    = hash;
        copy.url     = url;
        copy.extent  = extent;
        copy.srid    = srid;

        return copy;
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org