annotate gwt-client/src/main/java/org/dive4elements/river/client/client/ui/map/GetFeatureInfoWindow.java @ 5961:55687a506296

Only show localized elements in getfeatureinfo Flys issue775
author Andre Heinecke <aheinecke@intevation.de>
date Fri, 10 May 2013 10:02:27 +0200
parents 172338b1407f
children ea9eef426962
rev   line source
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5859
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: 5859
diff changeset
2 * Software engineering by Intevation GmbH
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5859
diff changeset
3 *
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5859
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5859
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5859
diff changeset
6 * documentation coming with Dive4Elements River for details.
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5859
diff changeset
7 */
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5859
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.client.ui.map;
1400
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
3347
6d749af6a9c2 Issue #726 work.
Christian Lins <christian.lins@intevation.de>
parents: 2487
diff changeset
11 import com.google.gwt.core.client.GWT;
4965
8af500d62098 Editing Map print config.
Christian Lins <christian.lins@intevation.de>
parents: 3521
diff changeset
12
5818
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
13 import com.smartgwt.client.widgets.HTMLPane;
3347
6d749af6a9c2 Issue #726 work.
Christian Lins <christian.lins@intevation.de>
parents: 2487
diff changeset
14 import com.smartgwt.client.widgets.Window;
5859
a3cd78333185 Removed obsolete imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
15
3347
6d749af6a9c2 Issue #726 work.
Christian Lins <christian.lins@intevation.de>
parents: 2487
diff changeset
16 import com.smartgwt.client.widgets.layout.VLayout;
5859
a3cd78333185 Removed obsolete imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
17
5813
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
18 import com.smartgwt.client.widgets.viewer.DetailViewer;
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
19 import com.smartgwt.client.widgets.viewer.DetailViewerField;
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
20 import com.smartgwt.client.widgets.viewer.DetailViewerRecord;
3347
6d749af6a9c2 Issue #726 work.
Christian Lins <christian.lins@intevation.de>
parents: 2487
diff changeset
21
5813
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
22 import java.util.ArrayList;
1402
15ef3d3081b7 Parse GetFeatureInfo response on our own and display resulting FeatureInfo objects in the GetFeatureInfoWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1400
diff changeset
23 import java.util.List;
15ef3d3081b7 Parse GetFeatureInfo response on our own and display resulting FeatureInfo objects in the GetFeatureInfoWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1400
diff changeset
24 import java.util.Map;
5859
a3cd78333185 Removed obsolete imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
25 import java.util.MissingResourceException;
1402
15ef3d3081b7 Parse GetFeatureInfo response on our own and display resulting FeatureInfo objects in the GetFeatureInfoWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1400
diff changeset
26 import java.util.Set;
5859
a3cd78333185 Removed obsolete imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
27
a3cd78333185 Removed obsolete imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
28 import org.dive4elements.river.client.client.FLYSConstants;
a3cd78333185 Removed obsolete imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
29
a3cd78333185 Removed obsolete imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
30 import org.dive4elements.river.client.shared.model.FeatureInfo;
1402
15ef3d3081b7 Parse GetFeatureInfo response on our own and display resulting FeatureInfo objects in the GetFeatureInfoWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1400
diff changeset
31
1400
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 import org.gwtopenmaps.openlayers.client.feature.VectorFeature;
5859
a3cd78333185 Removed obsolete imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
33
1400
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34 import org.gwtopenmaps.openlayers.client.util.Attributes;
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35 import org.gwtopenmaps.openlayers.client.util.JSObject;
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37 public class GetFeatureInfoWindow extends Window {
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39 protected FLYSConstants MSG = GWT.create(FLYSConstants.class);
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40
1402
15ef3d3081b7 Parse GetFeatureInfo response on our own and display resulting FeatureInfo objects in the GetFeatureInfoWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1400
diff changeset
41 protected List<FeatureInfo> features;
1400
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42
5813
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
43 protected String title;
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
44
5818
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
45 protected String featureInfoHTML;
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
46
1400
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47
1402
15ef3d3081b7 Parse GetFeatureInfo response on our own and display resulting FeatureInfo objects in the GetFeatureInfoWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1400
diff changeset
48 public static final int ROW_HEIGHT = 25;
15ef3d3081b7 Parse GetFeatureInfo response on our own and display resulting FeatureInfo objects in the GetFeatureInfoWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1400
diff changeset
49
15ef3d3081b7 Parse GetFeatureInfo response on our own and display resulting FeatureInfo objects in the GetFeatureInfoWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1400
diff changeset
50
5813
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
51 public GetFeatureInfoWindow(List<FeatureInfo> features, String title) {
1400
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52 super();
1402
15ef3d3081b7 Parse GetFeatureInfo response on our own and display resulting FeatureInfo objects in the GetFeatureInfoWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1400
diff changeset
53 this.features = features;
5813
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
54 this.title = title;
1402
15ef3d3081b7 Parse GetFeatureInfo response on our own and display resulting FeatureInfo objects in the GetFeatureInfoWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1400
diff changeset
55
1400
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56 initLayout();
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57 }
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58
5818
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
59 public GetFeatureInfoWindow(String featureInfoHTML, String title) {
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
60 super();
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
61 features = null;
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
62 this.title = title;
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
63 this.featureInfoHTML = featureInfoHTML;
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
64
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
65 initLayoutHTML();
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
66 }
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
67
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
68 protected void initLayoutHTML() {
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
69 HTMLPane pane = new HTMLPane();
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
70 pane.setContents(featureInfoHTML);
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
71 addItem(pane);
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
72 setWidth(500);
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
73 setHeight(300);
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
74
5821
79717f1cf6eb Set the title for the html feature info viewer
Andre Heinecke <aheinecke@intevation.de>
parents: 5818
diff changeset
75 setTitle(MSG.getFeatureInfoWindowTitle() + " " + title);
79717f1cf6eb Set the title for the html feature info viewer
Andre Heinecke <aheinecke@intevation.de>
parents: 5818
diff changeset
76
5818
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
77 setIsModal(false);
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
78 // setShowModalMask(true);
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
79
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
80 centerInPage();
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
81 }
1400
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83 protected void initLayout() {
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84 VLayout root = new VLayout();
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85
1402
15ef3d3081b7 Parse GetFeatureInfo response on our own and display resulting FeatureInfo objects in the GetFeatureInfoWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1400
diff changeset
86 for (FeatureInfo feature: features) {
5813
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
87 // Currently this should alway be only one
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
88 root.addMember(createFeatureViewer(feature));
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
89 setTitle(MSG.getFeatureInfoWindowTitle() + " " + title);
1400
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
90 }
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
91
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
92 addItem(root);
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
93
3521
ffbdd093da74 Fixed size for GetFeatureInfoWindow.
Christian Lins <christian.lins@intevation.de>
parents: 3347
diff changeset
94 setWidth(500);
5813
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
95 setHeight(300);
1400
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
96
5813
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
97 setIsModal(false);
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
98 // setShowModalMask(true);
2470
656df7c0bdda #556 Made GetFeatureInfoWindow modal.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1402
diff changeset
99
1400
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
100 centerInPage();
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
101 }
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
102
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
103
5813
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
104 protected DetailViewer createFeatureViewer(FeatureInfo feature) {
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
105 DetailViewer detailViewer = new DetailViewer();
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
106 detailViewer.setWidth(487);
1402
15ef3d3081b7 Parse GetFeatureInfo response on our own and display resulting FeatureInfo objects in the GetFeatureInfoWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1400
diff changeset
107
15ef3d3081b7 Parse GetFeatureInfo response on our own and display resulting FeatureInfo objects in the GetFeatureInfoWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1400
diff changeset
108 Map<String, String> attrs = feature.getAttrs();
15ef3d3081b7 Parse GetFeatureInfo response on our own and display resulting FeatureInfo objects in the GetFeatureInfoWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1400
diff changeset
109 Set<Map.Entry<String, String>> entries = attrs.entrySet();
5813
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
110 List <DetailViewerField> fields = new ArrayList<DetailViewerField>();
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
111 DetailViewerRecord dr = new DetailViewerRecord();
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
112
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
113 DetailViewerField path_field = null; // Make sure path is always the last element
1402
15ef3d3081b7 Parse GetFeatureInfo response on our own and display resulting FeatureInfo objects in the GetFeatureInfoWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1400
diff changeset
114
3347
6d749af6a9c2 Issue #726 work.
Christian Lins <christian.lins@intevation.de>
parents: 2487
diff changeset
115 for (Map.Entry<String, String> entry: entries) {
5813
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
116 String localized;
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
117 try {
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
118 localized = MSG.getString(entry.getKey());
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
119 } catch (MissingResourceException mre) {
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
120 localized = entry.getKey();
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
121 // We filter unwanted information by localization
5961
55687a506296 Only show localized elements in getfeatureinfo
Andre Heinecke <aheinecke@intevation.de>
parents: 5861
diff changeset
122 continue;
5813
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
123 }
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
124 if (entry.getKey().equals("PATH")) {
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
125 path_field = new DetailViewerField(entry.getKey(), localized);
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
126 } else {
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
127 fields.add(new DetailViewerField(entry.getKey(), localized));
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
128 }
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
129 dr.setAttribute(entry.getKey(), entry.getValue());
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
130 }
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
131 if (path_field != null)
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
132 fields.add(path_field);
1402
15ef3d3081b7 Parse GetFeatureInfo response on our own and display resulting FeatureInfo objects in the GetFeatureInfoWindow.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1400
diff changeset
133
5813
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
134 DetailViewerField[] fieldArray = new DetailViewerField[fields.size()];
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
135 detailViewer.setFields(fields.toArray(fieldArray));
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
136 detailViewer.setData(new DetailViewerRecord[]{dr});
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
137 detailViewer.setCanSelectText(true);
1400
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
138
5813
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
139 return detailViewer;
1400
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
140 }
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
141
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
142
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
143 protected String[][] extractProperties(VectorFeature feature) {
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
144 Attributes tmp = feature.getAttributes();
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
145 JSObject jsobj = tmp.getJSObject();
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
146
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
147 String tmpNames = jsobj.getPropertyNames();
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
148 String[] allNames = tmpNames.split(",");
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
149
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
150 String[][] attr = new String[allNames.length][];
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
151
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
152 for (int i = 0, n = attr.length; i < n; i++) {
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
153 attr[i] = new String[] {
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
154 allNames[i],
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
155 jsobj.getPropertyAsString(allNames[i]) };
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
156 }
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
157
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
158 return attr;
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
159 }
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
160 }
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
161 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org