Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/RiverAxisState.java @ 1190:f514894ec2fd
merged flys-artifacts/2.5
author | Thomas Arendsen Hein <thomas@intevation.de> |
---|---|
date | Fri, 28 Sep 2012 12:14:17 +0200 |
parents | fbe18ad4caff |
children | 092e1e5020bc |
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/states/RiverAxisState.java Fri Sep 28 12:14:17 2012 +0200 @@ -0,0 +1,82 @@ +package de.intevation.flys.artifacts.states; + +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Logger; + +import de.intevation.artifacts.CallContext; +import de.intevation.artifacts.CallMeta; + +import de.intevation.artifactdatabase.state.Facet; + +import de.intevation.flys.artifacts.FLYSArtifact; +import de.intevation.flys.artifacts.context.FLYSContext; +import de.intevation.flys.artifacts.model.WMSLayerFacet; +import de.intevation.flys.artifacts.resources.Resources; +import de.intevation.flys.artifacts.states.DefaultState.ComputeType; +import de.intevation.flys.utils.FLYSUtils; +import de.intevation.flys.utils.GeometryUtils; + + +public class RiverAxisState extends OutputState { + + public static final String I18N_DESCRIPTION = "floodmap.riveraxis"; + + public static final String WMS_LAYER_NAME = "riveraxis"; + + + + private static final Logger logger = Logger.getLogger(RiverAxisState.class); + + + @Override + public Object computeInit( + FLYSArtifact artifact, + String hash, + Object context, + CallMeta meta, + List<Facet> facets + ) { + logger.debug("RiverAxisState.computeInit()"); + + FLYSContext flysContext = null; + + if (context instanceof FLYSContext) { + flysContext = (FLYSContext) context; + } + else { + flysContext = (FLYSContext) ((CallContext) context).globalContext(); + } + + Map<String, String> wms = (Map<String, String>) + flysContext.get(FLYSContext.RIVER_WMS); + + String river = artifact.getDataAsString("river"); + + if(river == null || river.length() == 0) { + logger.warn("No river found in the current parameterization."); + return null; + } + + String url = wms.get(river); + + // TODO Add config for background layer + WMSLayerFacet facet = new WMSLayerFacet( + 0, + FLOODMAP_RIVERAXIS, + Resources.getMsg(meta, I18N_DESCRIPTION, I18N_DESCRIPTION), + ComputeType.INIT, + getID(), hash, + url); + + facet.addLayer(WMS_LAYER_NAME); + facet.setExtent(GeometryUtils.getRiverBounds(river)); + facet.setSrid(FLYSUtils.getRiverSrid(artifact)); + + facets.add(facet); + + return null; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :