Mercurial > dive4elements > river
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 : |