Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/MapArtifact.java @ 2082:007a8f5ed9f1
Implemented new module "new map".
flys-artifacts/trunk@3598 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Thu, 05 Jan 2012 14:29:54 +0000 |
parents | |
children | 0da8874bd378 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/MapArtifact.java Thu Jan 05 14:29:54 2012 +0000 @@ -0,0 +1,137 @@ +package de.intevation.flys.artifacts; + +import org.apache.log4j.Logger; + +import java.util.List; + +import org.w3c.dom.Document; + +import de.intevation.artifacts.ArtifactFactory; +import de.intevation.artifacts.CallMeta; +import de.intevation.artifacts.CallContext; + +import de.intevation.artifactdatabase.state.DefaultOutput; +import de.intevation.artifactdatabase.state.Facet; +import de.intevation.artifactdatabase.state.State; + +import de.intevation.flys.artifacts.model.WMSDBLayerFacet; + +import de.intevation.flys.model.River; + +import de.intevation.flys.artifacts.model.FacetTypes; +import de.intevation.flys.artifacts.model.RiverFactory; +import de.intevation.flys.artifacts.resources.Resources; +import de.intevation.flys.utils.FLYSUtils; +import de.intevation.flys.utils.GeometryUtils; + + +public class MapArtifact extends RiverAxisArtifact { + + private static final Logger logger = + Logger.getLogger(MapArtifact.class); + + @Override + public void setup( + String identifier, + ArtifactFactory factory, + Object context, + CallMeta callmeta, + Document data) + { + logger.debug("MapArtifact.setup"); + this.identifier = identifier; + } + + @Override + public State getCurrentState(Object cc) { + logger.debug("MapArtifact.getCurrentState"); + + State state = new MapState(this); + List<Facet> fs = facets.get(getCurrentStateId()); + + DefaultOutput o = new DefaultOutput( + "floodmap", + "floodmap", + "image/png", + fs, + "map"); + + state.getOutputs().add(o); + + return state; + } + + + @Override + public String getCurrentStateId() { + return "state.map.new"; + } + + + public static class MapState extends RiverAxisState { + + public MapState() { + } + + public MapState(MapArtifact artifact) { + super(artifact); + this.id = "state.map.new"; + } + + @Override + public Object computeInit( + FLYSArtifact artifact, + String hash, + Object context, + CallMeta meta, + List<Facet> facets) + { + return null; + } + + @Override + public Object computeFeed( + FLYSArtifact artifact, + String hash, + CallContext context, + List<Facet> facets, + Object old) + { + logger.debug("MapState.computeFeed"); + + String type = getFacetType(); + + WMSDBLayerFacet facet = new WMSDBLayerFacet( + 0, + type, + getTitle(context.getMeta()), + ComputeType.FEED, + getID(), hash, + getUrl()); + + String name = type + "-" + artifact.identifier(); + + facet.addLayer(name); + facet.setExtent(getExtent()); + facet.setSrid(getSrid()); + facet.setData(getDataString()); + facet.setFilter(getFilter()); + facet.setGeometryType(getGeometryType()); + facet.setConnection(getConnection()); + facet.setConnectionType(getConnectionType()); + facet.setLabelItem(getLabelItem()); + + facets.add(facet); + + return null; + } + + @Override + public int getRiverId() { + River r = FLYSUtils.getRiver(artifact); + int riverId = r.getId(); + + return riverId; + } + } +}