Mercurial > dive4elements > river
view flys-client/src/main/java/de/intevation/flys/client/server/MapOutputServiceImpl.java @ 1539:28e514c968d6
Suppress onCollectionChange event if an artifact is added to the collection
to avoid loading maps twice.
flys-client/trunk@3757 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Tue, 24 Jan 2012 14:58:48 +0000 |
parents | f7b3d5833f3b |
children |
line wrap: on
line source
package de.intevation.flys.client.server; import java.io.InputStream; import java.io.IOException; import java.util.Map; import org.w3c.dom.Document; import org.apache.log4j.Logger; import com.google.gwt.user.server.rpc.RemoteServiceServlet; import de.intevation.artifacts.common.utils.ClientProtocolUtils; import de.intevation.artifacts.common.utils.XMLUtils; import de.intevation.artifacts.httpclient.http.HttpClient; import de.intevation.artifacts.httpclient.http.HttpClientImpl; import de.intevation.artifacts.httpclient.exceptions.ConnectionException; import de.intevation.flys.client.shared.exceptions.ServerException; import de.intevation.flys.client.shared.model.Collection; import de.intevation.flys.client.shared.model.MapConfig; import de.intevation.flys.client.shared.model.OutputMode; import de.intevation.flys.client.client.services.MapOutputService; public class MapOutputServiceImpl extends RemoteServiceServlet implements MapOutputService { private static final Logger logger = Logger.getLogger(MapOutputServiceImpl.class); public static final String ERROR_NO_MAP_CONFIG = "error_no_map_config"; public static final String ERROR_NO_MAP_OUTPUT_TYPE = "error_no_map_output_type"; public MapConfig doOut(Collection collection) throws ServerException { logger.info("MapOutputServiceImpl.doOut"); String url = getServletContext().getInitParameter("server-url"); String uuid = collection.identifier(); Map<String, OutputMode> modes = collection.getOutputModes(); String requestMode = ""; if (modes.containsKey("floodmap")) { requestMode = "floodmap"; } else if (modes.containsKey("map")) { requestMode = "map"; } else { throw new ServerException(ERROR_NO_MAP_OUTPUT_TYPE); } try { Document request = ClientProtocolUtils.newOutCollectionDocument( uuid, requestMode, requestMode); HttpClient client = new HttpClientImpl(url); InputStream is = client.collectionOut(request, uuid, requestMode); Document response = XMLUtils.parseDocument(is); return MapHelper.parseConfig(response); } catch (ConnectionException e) { logger.error(e, e); } catch (IOException ioe) { logger.error(ioe, ioe); } throw new ServerException(ERROR_NO_MAP_CONFIG); } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :