# HG changeset patch # User Christian Lins # Date 1357136658 -3600 # Node ID 5014a84c0c7dcdf4e57fbc14f576bf55bdf38189 # Parent d93748043cbc4ae0d27b1c3e6369734d0264aee1 Add "maptype" parameter to MapInfoService. diff -r d93748043cbc -r 5014a84c0c7d flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapOutputTab.java --- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapOutputTab.java Wed Jan 02 15:15:45 2013 +0100 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapOutputTab.java Wed Jan 02 15:24:18 2013 +0100 @@ -3,6 +3,7 @@ import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.AbsolutePanel; + import com.smartgwt.client.util.SC; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.events.ParentMovedEvent; @@ -45,6 +46,7 @@ import de.intevation.flys.client.shared.model.ThemeList; import de.intevation.flys.client.shared.model.WMSLayer; +import java.util.HashMap; import java.util.List; import org.gwtopenmaps.openlayers.client.Bounds; @@ -94,6 +96,7 @@ protected VLayout rootLayout = new VLayout(); protected AbsolutePanel absPan = new AbsolutePanel(); protected FloodMap floodMap; + protected java.util.Map wmsUrls = new HashMap(); public MapOutputTab( @@ -437,14 +440,14 @@ public Layer createWMSLayer(Theme theme) { - if (theme == null) { + if (theme == null || !(theme instanceof AttributedTheme)) { return null; } AttributedTheme at = (AttributedTheme) theme; - //String type = at.getAttr("name"); - //String desc = at.getAttr("description"); + String name = at.getAttr("name"); + String desc = at.getAttr("description"); String url = at.getAttr("url"); String layers = at.getAttr("layers"); @@ -452,7 +455,7 @@ return null; } - //boolean baseLayer = type.equals("floodmap.wmsbackground"); + this.wmsUrls.put(name, url); WMSParams params = new WMSParams(); params.setLayers(layers); @@ -472,6 +475,11 @@ } + public java.util.Map wmsUrls() { + return this.wmsUrls; + } + + protected MapToolbar createControlPanel() { return new MapToolbar(this, floodMap, false); } diff -r d93748043cbc -r 5014a84c0c7d flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapThemePanel.java --- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapThemePanel.java Wed Jan 02 15:15:45 2013 +0100 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapThemePanel.java Wed Jan 02 15:24:18 2013 +0100 @@ -1,6 +1,7 @@ package de.intevation.flys.client.client.ui.map; import com.google.gwt.core.client.GWT; + import com.smartgwt.client.types.ListGridFieldType; import com.smartgwt.client.util.BooleanCallback; import com.smartgwt.client.util.SC; @@ -175,11 +176,28 @@ if (layerZoom != null) { menu.addItem(layerZoom); } + //menu.addItem(createMapURLItem(records)); return menu; } + protected MenuItem createMapURLItem(final ListGridRecord[] records) { + final FacetRecord fr = (FacetRecord) records[0]; + final AttributedTheme at = (AttributedTheme) fr.getTheme(); + + MenuItem item = new MenuItem("WMS URL"); + item.addClickHandler(new ClickHandler() { + @Override + public void onClick(MenuItemClickEvent evt) { + SC.say(at.getAttr("url")); + } + }); + + return item; + } + + @Override protected MenuItem createRemoveItem(final ListGridRecord[] records) { MenuItem item = super.createRemoveItem(records); diff -r d93748043cbc -r 5014a84c0c7d flys-client/src/main/java/de/intevation/flys/client/server/MapInfoServiceImpl.java --- a/flys-client/src/main/java/de/intevation/flys/client/server/MapInfoServiceImpl.java Wed Jan 02 15:15:45 2013 +0100 +++ b/flys-client/src/main/java/de/intevation/flys/client/server/MapInfoServiceImpl.java Wed Jan 02 15:24:18 2013 +0100 @@ -1,5 +1,6 @@ package de.intevation.flys.client.server; +import com.google.gwt.core.client.GWT; import com.google.gwt.user.server.rpc.RemoteServiceServlet; import de.intevation.artifacts.common.utils.XMLUtils; @@ -43,7 +44,7 @@ public static final String XPATH_RIVER_WMS = "/mapinfo/river/river-wms/@url"; - public static final String XPATH_RIVER_WMS_LAYERS = + public static final String XPATH_RIVER_LAYERS = "/mapinfo/river/river-wms/@layers"; public static final String XPATH_WMS_URL = @@ -64,7 +65,7 @@ String url = getServletContext().getInitParameter("server-url"); - Document request = getRequestDocument(river);; + Document request = getRequestDocument(river, "rivermap"); HttpClient client = new HttpClientImpl(url, locale); @@ -87,19 +88,22 @@ } - public static Document getRequestDocument(String rivername) { + public static Document getRequestDocument(String rivername, String maptypeStr) { logger.debug("MapInfoServiceImpl.getRequestDocument"); Document request = XMLUtils.newDocument(); ElementCreator cr = new ElementCreator(request, null, null); - Element root = cr.create("mapinfo"); - Element river = cr.create("river"); + Element root = cr.create("mapinfo"); + Element river = cr.create("river"); + Element maptype = cr.create("maptype"); river.setTextContent(rivername); + maptype.setTextContent(maptypeStr); request.appendChild(root); root.appendChild(river); + root.appendChild(maptype); return request; } @@ -114,9 +118,9 @@ BBox bbox = BBox.getBBoxFromString(bboxS); String riverWMS = XMLUtils.xpathString(result, XPATH_RIVER_WMS, null); - String riverLayers = XMLUtils.xpathString(result, XPATH_RIVER_WMS_LAYERS, null); - String wmsURL = XMLUtils.xpathString(result, XPATH_WMS_URL, null); - String wmsLayers = XMLUtils.xpathString(result, XPATH_WMS_LAYERS, null); + String riverLayers = XMLUtils.xpathString(result, XPATH_RIVER_LAYERS, null); + String wmsURL = XMLUtils.xpathString(result, XPATH_WMS_URL, null); + String wmsLayers = XMLUtils.xpathString(result, XPATH_WMS_LAYERS, null); int srid = 4326; @@ -124,10 +128,11 @@ srid = Integer.parseInt(sridStr); } catch (NumberFormatException nfe) { - // do nothing + GWT.log("Could not parse SRID String: " + sridStr); } - return new MapInfo(river, srid, bbox, riverWMS, riverLayers, wmsURL, wmsLayers); + return new MapInfo( + river, srid, bbox, riverWMS, riverLayers, wmsURL, wmsLayers); } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r d93748043cbc -r 5014a84c0c7d flys-client/src/main/java/de/intevation/flys/client/shared/model/MapInfo.java --- a/flys-client/src/main/java/de/intevation/flys/client/shared/model/MapInfo.java Wed Jan 02 15:15:45 2013 +0100 +++ b/flys-client/src/main/java/de/intevation/flys/client/shared/model/MapInfo.java Wed Jan 02 15:24:18 2013 +0100 @@ -5,7 +5,7 @@ public class MapInfo implements Serializable { - private static final long serialVersionUID = 6691651140549280494L; + private static final long serialVersionUID = 6691651180549280493L; protected String river; protected int srid; @@ -65,7 +65,7 @@ public String getWmsLayers() { - return wmsLayers; + return this.wmsLayers; }