annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/map/GetFeatureInfoWindow.java @ 5818:a4ff4167be1e

Request feature info on all layers and show it as html if the server does not return valid gml. Non queryable layers produce an error message when the request fails. This is good enough
author Andre Heinecke <aheinecke@intevation.de>
date Wed, 24 Apr 2013 17:33:27 +0200
parents e0ab5a566688
children 79717f1cf6eb
rev   line source
1400
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.client.ui.map;
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
3347
6d749af6a9c2 Issue #726 work.
Christian Lins <christian.lins@intevation.de>
parents: 2487
diff changeset
3 import com.google.gwt.core.client.GWT;
4965
8af500d62098 Editing Map print config.
Christian Lins <christian.lins@intevation.de>
parents: 3521
diff changeset
4
5818
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
5 import com.smartgwt.client.widgets.HTMLPane;
3347
6d749af6a9c2 Issue #726 work.
Christian Lins <christian.lins@intevation.de>
parents: 2487
diff changeset
6 import com.smartgwt.client.widgets.Label;
6d749af6a9c2 Issue #726 work.
Christian Lins <christian.lins@intevation.de>
parents: 2487
diff changeset
7 import com.smartgwt.client.widgets.Window;
6d749af6a9c2 Issue #726 work.
Christian Lins <christian.lins@intevation.de>
parents: 2487
diff changeset
8 import com.smartgwt.client.widgets.layout.VLayout;
5813
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
9 import com.smartgwt.client.widgets.viewer.DetailViewer;
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
10 import com.smartgwt.client.widgets.viewer.DetailViewerField;
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
11 import com.smartgwt.client.widgets.viewer.DetailViewerRecord;
3347
6d749af6a9c2 Issue #726 work.
Christian Lins <christian.lins@intevation.de>
parents: 2487
diff changeset
12
6d749af6a9c2 Issue #726 work.
Christian Lins <christian.lins@intevation.de>
parents: 2487
diff changeset
13 import de.intevation.flys.client.client.FLYSConstants;
6d749af6a9c2 Issue #726 work.
Christian Lins <christian.lins@intevation.de>
parents: 2487
diff changeset
14 import de.intevation.flys.client.shared.model.FeatureInfo;
5818
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
15 import de.intevation.flys.client.shared.model.FeatureInfoResponse;
3347
6d749af6a9c2 Issue #726 work.
Christian Lins <christian.lins@intevation.de>
parents: 2487
diff changeset
16
5813
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
17 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
18 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
19 import java.util.Map;
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
20 import java.util.Set;
5813
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
21 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
22
1400
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23 import org.gwtopenmaps.openlayers.client.feature.VectorFeature;
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24 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
25 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
26
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28 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
29
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30 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
31
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
32 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
33
5813
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
34 protected String title;
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
35
5818
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
36 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
37
1400
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38
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
39 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
40
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
5813
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
42 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
43 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
44 this.features = features;
5813
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
45 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
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 initLayout();
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48 }
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49
5818
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
50 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
51 super();
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
52 features = null;
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
53 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
54 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
55
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
56 initLayoutHTML();
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
57 }
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
58
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
59 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
60 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
61 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
62 addItem(pane);
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
63 setWidth(500);
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
64 setHeight(300);
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
65
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
66 setIsModal(false);
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
67 // setShowModalMask(true);
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
68
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
69 centerInPage();
a4ff4167be1e Request feature info on all layers and show it as html if
Andre Heinecke <aheinecke@intevation.de>
parents: 5813
diff changeset
70 }
1400
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
72 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
73 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
74
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
75 for (FeatureInfo feature: features) {
5813
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
76 // Currently this should alway be only one
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
77 root.addMember(createFeatureViewer(feature));
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
78 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
79 }
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81 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
82
3521
ffbdd093da74 Fixed size for GetFeatureInfoWindow.
Christian Lins <christian.lins@intevation.de>
parents: 3347
diff changeset
83 setWidth(500);
5813
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
84 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
85
5813
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
86 setIsModal(false);
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
87 // setShowModalMask(true);
2470
656df7c0bdda #556 Made GetFeatureInfoWindow modal.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1402
diff changeset
88
1400
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
89 centerInPage();
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
5813
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
93 protected DetailViewer createFeatureViewer(FeatureInfo feature) {
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
94 DetailViewer detailViewer = new DetailViewer();
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
95 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
96
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
97 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
98 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
99 List <DetailViewerField> fields = new ArrayList<DetailViewerField>();
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
100 DetailViewerRecord dr = new DetailViewerRecord();
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
101
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
102 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
103
3347
6d749af6a9c2 Issue #726 work.
Christian Lins <christian.lins@intevation.de>
parents: 2487
diff changeset
104 for (Map.Entry<String, String> entry: entries) {
5813
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
105 String localized;
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
106 try {
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
107 localized = MSG.getString(entry.getKey());
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
108 } catch (MissingResourceException mre) {
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
109 localized = entry.getKey();
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
110 // We filter unwanted information by localization
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
111 // Uncomment to filter out unlocalized elements
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
112 // continue;
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
113 }
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
114 if (entry.getKey().equals("PATH")) {
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
115 path_field = new DetailViewerField(entry.getKey(), localized);
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
116 } else {
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
117 fields.add(new DetailViewerField(entry.getKey(), localized));
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
118 }
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
119 dr.setAttribute(entry.getKey(), entry.getValue());
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
120 }
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
121 if (path_field != null)
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
122 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
123
5813
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
124 DetailViewerField[] fieldArray = new DetailViewerField[fields.size()];
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
125 detailViewer.setFields(fields.toArray(fieldArray));
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
126 detailViewer.setData(new DetailViewerRecord[]{dr});
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
127 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
128
5813
e0ab5a566688 Rework FeatureInfo Window fopr issue 775
Andre Heinecke <aheinecke@intevation.de>
parents: 4965
diff changeset
129 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
130 }
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
131
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
132
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
133 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
134 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
135 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
136
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
137 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
138 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
139
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
140 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
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 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
143 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
144 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
145 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
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
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
148 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
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 }
96708d81eaf6 Added an initial GetFeatureInfo tool to get information about points in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
151 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org