view gwt-client/src/main/java/org/dive4elements/river/client/shared/MapUtils.java @ 8856:5e38e2924c07 3.2.x

Fix code style.
author Tom Gottfried <tom@intevation.de>
date Thu, 18 Jan 2018 20:12:01 +0100
parents 890f708b18d6
children fa8897698133
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;


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 + "&timestamp=" + new Date().getTime();
        if (dpi != -1) {
            url+="&legend_options=dpi:" + dpi;
        }

        return url;
    }


    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 :

http://dive4elements.wald.intevation.org