Mercurial > dive4elements > river
view gwt-client/src/main/java/org/dive4elements/river/client/shared/MapUtils.java @ 6801:81814d21f1b7 double-precision
Importer Doc: add description of alternativ attribut-names.
author | Tom Gottfried <tom.gottfried@intevation.de> |
---|---|
date | Fri, 09 Aug 2013 15:55:50 +0200 |
parents | 2987d81ea719 |
children | 890f708b18d6 |
line wrap: on
line source
/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde * Software engineering by Intevation GmbH * * This file is Free Software under the GNU AGPL (>=v3) * and comes with ABSOLUTELY NO WARRANTY! Check out the * documentation coming with Dive4Elements River for details. */ package org.dive4elements.river.client.shared; import java.util.Date; import com.google.gwt.safehtml.shared.SafeHtmlUtils; public class MapUtils { public static final String GET_LEGEND_GRAPHIC_TEMPLATE = "${SERVER}SERVICE=WMS&VERSION=1.1.1&layer=${LAYER}" + "&REQUEST=getLegendGraphic&FORMAT=image/png"; private MapUtils() { } public static String getLegendGraphicUrl(String server, String layer) { return getLegendGraphicUrl(server, layer, -1); } public static String getLegendGraphicUrl(String server, String layer, int dpi) { if (server == null || layer == null) { return null; } if (server.contains("osm.intevation.de")) { // GetLegend is not implemented at osm.intevation.de // This avoids an error in the print log return null; } server = server.indexOf("?") >= 0 ? server : server + "?"; String url = GET_LEGEND_GRAPHIC_TEMPLATE; url = url.replace("${SERVER}", server); url = url.replace("${LAYER}", layer); url = url + "×tamp=" + new Date().getTime(); if (dpi != -1) { url+="&legend_options=dpi:" + dpi; } return url; } public static String toSaveHTMLJavaString(String str) { return str == null ? null : SafeHtmlUtils.htmlEscape(toJavaEncodedString(str)); } public static String toJavaEncodedString(String str) { if (str == null) { return null; } StringBuilder sb = new StringBuilder(); for (int i = 0, len = str.length(); i < len; i++) { int unipoint = Character.codePointAt(str, i); if ((unipoint < 32) || (unipoint > 127)) { sb.append("\\u"); sb.append(Integer.toHexString((unipoint >> 3*4) & 0xf)); sb.append(Integer.toHexString((unipoint >> 2*4) & 0xf)); sb.append(Integer.toHexString((unipoint >> 1*4) & 0xf)); sb.append(Integer.toHexString((unipoint >> 0*4) & 0xf)); } else { sb.append(str.charAt(i)); } } return sb.toString(); } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :