raimund@2082: package de.intevation.flys.artifacts; raimund@2082: raimund@2082: import org.apache.log4j.Logger; raimund@2082: raimund@2082: import java.util.List; raimund@2082: raimund@2082: import org.w3c.dom.Document; raimund@2082: raimund@2082: import de.intevation.artifacts.ArtifactFactory; raimund@2082: import de.intevation.artifacts.CallMeta; raimund@2082: import de.intevation.artifacts.CallContext; raimund@2082: raimund@2082: import de.intevation.artifactdatabase.state.DefaultOutput; raimund@2082: import de.intevation.artifactdatabase.state.Facet; raimund@2082: import de.intevation.artifactdatabase.state.State; raimund@2082: raimund@2082: import de.intevation.flys.artifacts.model.WMSDBLayerFacet; raimund@2082: raimund@2082: import de.intevation.flys.model.River; raimund@2082: raimund@2082: import de.intevation.flys.artifacts.model.FacetTypes; raimund@2082: import de.intevation.flys.artifacts.model.RiverFactory; raimund@2082: import de.intevation.flys.artifacts.resources.Resources; raimund@2082: import de.intevation.flys.utils.FLYSUtils; raimund@2082: import de.intevation.flys.utils.GeometryUtils; raimund@2082: raimund@2082: raimund@2082: public class MapArtifact extends RiverAxisArtifact { raimund@2082: raimund@2082: private static final Logger logger = raimund@2082: Logger.getLogger(MapArtifact.class); raimund@2082: raimund@2082: @Override raimund@2082: public void setup( raimund@2082: String identifier, raimund@2082: ArtifactFactory factory, raimund@2082: Object context, raimund@2082: CallMeta callmeta, raimund@2082: Document data) raimund@2082: { raimund@2082: logger.debug("MapArtifact.setup"); raimund@2082: this.identifier = identifier; raimund@2082: } raimund@2082: raimund@2082: @Override raimund@2082: public State getCurrentState(Object cc) { raimund@2082: logger.debug("MapArtifact.getCurrentState"); raimund@2082: raimund@2082: State state = new MapState(this); raimund@2082: List fs = facets.get(getCurrentStateId()); raimund@2082: raimund@2082: DefaultOutput o = new DefaultOutput( raimund@2082: "floodmap", raimund@2082: "floodmap", raimund@2082: "image/png", raimund@2082: fs, raimund@2082: "map"); raimund@2082: raimund@2082: state.getOutputs().add(o); raimund@2082: raimund@2082: return state; raimund@2082: } raimund@2082: raimund@2082: raimund@2082: @Override raimund@2082: public String getCurrentStateId() { raimund@2082: return "state.map.new"; raimund@2082: } raimund@2082: raimund@2082: raimund@2082: public static class MapState extends RiverAxisState { raimund@2082: raimund@2082: public MapState() { raimund@2082: } raimund@2082: raimund@2082: public MapState(MapArtifact artifact) { raimund@2082: super(artifact); raimund@2082: this.id = "state.map.new"; raimund@2082: } raimund@2082: raimund@2082: @Override raimund@2082: public Object computeInit( raimund@2082: FLYSArtifact artifact, raimund@2082: String hash, raimund@2082: Object context, raimund@2082: CallMeta meta, raimund@2082: List facets) raimund@2082: { raimund@2082: return null; raimund@2082: } raimund@2082: raimund@2082: @Override raimund@2082: public Object computeFeed( raimund@2082: FLYSArtifact artifact, raimund@2082: String hash, raimund@2082: CallContext context, raimund@2082: List facets, raimund@2082: Object old) raimund@2082: { raimund@2082: logger.debug("MapState.computeFeed"); raimund@2082: raimund@2082: String type = getFacetType(); raimund@2082: raimund@2082: WMSDBLayerFacet facet = new WMSDBLayerFacet( raimund@2082: 0, raimund@2082: type, raimund@2082: getTitle(context.getMeta()), raimund@2082: ComputeType.FEED, raimund@2082: getID(), hash, raimund@2082: getUrl()); raimund@2082: raimund@2082: String name = type + "-" + artifact.identifier(); raimund@2082: raimund@2082: facet.addLayer(name); raimund@2082: facet.setExtent(getExtent()); raimund@2082: facet.setSrid(getSrid()); raimund@2082: facet.setData(getDataString()); raimund@2082: facet.setFilter(getFilter()); raimund@2082: facet.setGeometryType(getGeometryType()); raimund@2082: facet.setConnection(getConnection()); raimund@2082: facet.setConnectionType(getConnectionType()); raimund@2082: facet.setLabelItem(getLabelItem()); raimund@2082: raimund@2082: facets.add(facet); raimund@2082: raimund@2082: return null; raimund@2082: } raimund@2082: raimund@2082: @Override raimund@2082: public int getRiverId() { raimund@2082: River r = FLYSUtils.getRiver(artifact); raimund@2082: int riverId = r.getId(); raimund@2082: raimund@2082: return riverId; raimund@2082: } raimund@2082: } raimund@2082: }