annotate gwt-client/src/main/java/org/dive4elements/river/client/shared/MapUtils.java @ 8871:78cd6572778d

Introduced groups for modules. Modules marked with the same group-id, will be put together in the ui. Also using now the localization info from the server instead of localizing the modules again on the client side.
author gernotbelger
date Wed, 07 Feb 2018 12:02:58 +0100
parents 5e38e2924c07
children fa8897698133
rev   line source
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5861
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5993
ea9eef426962 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5861
diff changeset
6 * documentation coming with Dive4Elements River for details.
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
9 package org.dive4elements.river.client.shared;
1328
ab93960ac2fb Added missing MapUtils class from last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
2440
661e3ae77c8a #558 Reload GetLegendGraphics images when changing the style of a map layer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1328
diff changeset
11 import java.util.Date;
661e3ae77c8a #558 Reload GetLegendGraphics images when changing the style of a map layer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1328
diff changeset
12
1328
ab93960ac2fb Added missing MapUtils class from last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13
ab93960ac2fb Added missing MapUtils class from last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14 public class MapUtils {
ab93960ac2fb Added missing MapUtils class from last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15
ab93960ac2fb Added missing MapUtils class from last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16 public static final String GET_LEGEND_GRAPHIC_TEMPLATE =
ab93960ac2fb Added missing MapUtils class from last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17 "${SERVER}SERVICE=WMS&VERSION=1.1.1&layer=${LAYER}" +
ab93960ac2fb Added missing MapUtils class from last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18 "&REQUEST=getLegendGraphic&FORMAT=image/png";
ab93960ac2fb Added missing MapUtils class from last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19
ab93960ac2fb Added missing MapUtils class from last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20
ab93960ac2fb Added missing MapUtils class from last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 private MapUtils() {
ab93960ac2fb Added missing MapUtils class from last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22 }
ab93960ac2fb Added missing MapUtils class from last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23
5676
f8409fbe3b88 Request maps from osm.intevation.de by another url and fix dpi handling
Andre Heinecke <aheinecke@intevation.de>
parents: 2440
diff changeset
24 public static String getLegendGraphicUrl(String server, String layer) {
f8409fbe3b88 Request maps from osm.intevation.de by another url and fix dpi handling
Andre Heinecke <aheinecke@intevation.de>
parents: 2440
diff changeset
25 return getLegendGraphicUrl(server, layer, -1);
f8409fbe3b88 Request maps from osm.intevation.de by another url and fix dpi handling
Andre Heinecke <aheinecke@intevation.de>
parents: 2440
diff changeset
26 }
1328
ab93960ac2fb Added missing MapUtils class from last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8844
diff changeset
28 public static String getLegendGraphicUrl(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8844
diff changeset
29 String server,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8844
diff changeset
30 String layer,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8844
diff changeset
31 int dpi
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8844
diff changeset
32 ) {
1328
ab93960ac2fb Added missing MapUtils class from last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 if (server == null || layer == null) {
ab93960ac2fb Added missing MapUtils class from last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34 return null;
ab93960ac2fb Added missing MapUtils class from last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35 }
ab93960ac2fb Added missing MapUtils class from last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36
5676
f8409fbe3b88 Request maps from osm.intevation.de by another url and fix dpi handling
Andre Heinecke <aheinecke@intevation.de>
parents: 2440
diff changeset
37 if (server.contains("osm.intevation.de")) {
f8409fbe3b88 Request maps from osm.intevation.de by another url and fix dpi handling
Andre Heinecke <aheinecke@intevation.de>
parents: 2440
diff changeset
38 // GetLegend is not implemented at osm.intevation.de
f8409fbe3b88 Request maps from osm.intevation.de by another url and fix dpi handling
Andre Heinecke <aheinecke@intevation.de>
parents: 2440
diff changeset
39 // This avoids an error in the print log
f8409fbe3b88 Request maps from osm.intevation.de by another url and fix dpi handling
Andre Heinecke <aheinecke@intevation.de>
parents: 2440
diff changeset
40 return null;
f8409fbe3b88 Request maps from osm.intevation.de by another url and fix dpi handling
Andre Heinecke <aheinecke@intevation.de>
parents: 2440
diff changeset
41 }
1328
ab93960ac2fb Added missing MapUtils class from last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42 server = server.indexOf("?") >= 0 ? server : server + "?";
ab93960ac2fb Added missing MapUtils class from last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43
ab93960ac2fb Added missing MapUtils class from last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44 String url = GET_LEGEND_GRAPHIC_TEMPLATE;
ab93960ac2fb Added missing MapUtils class from last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45 url = url.replace("${SERVER}", server);
ab93960ac2fb Added missing MapUtils class from last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 url = url.replace("${LAYER}", layer);
2440
661e3ae77c8a #558 Reload GetLegendGraphics images when changing the style of a map layer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1328
diff changeset
47 url = url + "&timestamp=" + new Date().getTime();
5676
f8409fbe3b88 Request maps from osm.intevation.de by another url and fix dpi handling
Andre Heinecke <aheinecke@intevation.de>
parents: 2440
diff changeset
48 if (dpi != -1) {
f8409fbe3b88 Request maps from osm.intevation.de by another url and fix dpi handling
Andre Heinecke <aheinecke@intevation.de>
parents: 2440
diff changeset
49 url+="&legend_options=dpi:" + dpi;
f8409fbe3b88 Request maps from osm.intevation.de by another url and fix dpi handling
Andre Heinecke <aheinecke@intevation.de>
parents: 2440
diff changeset
50 }
1328
ab93960ac2fb Added missing MapUtils class from last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51
ab93960ac2fb Added missing MapUtils class from last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52 return url;
ab93960ac2fb Added missing MapUtils class from last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
53 }
6384
2987d81ea719 Further fix encoding handling in the print service
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
54
2987d81ea719 Further fix encoding handling in the print service
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
55
2987d81ea719 Further fix encoding handling in the print service
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
56 public static String toJavaEncodedString(String str) {
2987d81ea719 Further fix encoding handling in the print service
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
57 if (str == null) {
2987d81ea719 Further fix encoding handling in the print service
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
58 return null;
2987d81ea719 Further fix encoding handling in the print service
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
59 }
2987d81ea719 Further fix encoding handling in the print service
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
60 StringBuilder sb = new StringBuilder();
2987d81ea719 Further fix encoding handling in the print service
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
61 for (int i = 0, len = str.length(); i < len; i++) {
2987d81ea719 Further fix encoding handling in the print service
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
62 int unipoint = Character.codePointAt(str, i);
2987d81ea719 Further fix encoding handling in the print service
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
63 if ((unipoint < 32) || (unipoint > 127)) {
2987d81ea719 Further fix encoding handling in the print service
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
64 sb.append("\\u");
2987d81ea719 Further fix encoding handling in the print service
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
65 sb.append(Integer.toHexString((unipoint >> 3*4) & 0xf));
2987d81ea719 Further fix encoding handling in the print service
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
66 sb.append(Integer.toHexString((unipoint >> 2*4) & 0xf));
2987d81ea719 Further fix encoding handling in the print service
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
67 sb.append(Integer.toHexString((unipoint >> 1*4) & 0xf));
2987d81ea719 Further fix encoding handling in the print service
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
68 sb.append(Integer.toHexString((unipoint >> 0*4) & 0xf));
2987d81ea719 Further fix encoding handling in the print service
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
69 } else {
2987d81ea719 Further fix encoding handling in the print service
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
70 sb.append(str.charAt(i));
2987d81ea719 Further fix encoding handling in the print service
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
71 }
2987d81ea719 Further fix encoding handling in the print service
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
72 }
2987d81ea719 Further fix encoding handling in the print service
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
73 return sb.toString();
2987d81ea719 Further fix encoding handling in the print service
Andre Heinecke <aheinecke@intevation.de>
parents: 5993
diff changeset
74 }
1328
ab93960ac2fb Added missing MapUtils class from last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75 }
ab93960ac2fb Added missing MapUtils class from last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
76 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org