Mercurial > dive4elements > river
comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/map/GetFeatureInfoWindow.java @ 5813:e0ab5a566688
Rework FeatureInfo Window fopr issue 775
Looks much better now :)
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Wed, 24 Apr 2013 14:58:14 +0200 |
parents | 8af500d62098 |
children | a4ff4167be1e |
comparison
equal
deleted
inserted
replaced
5812:c24820c235d9 | 5813:e0ab5a566688 |
---|---|
2 | 2 |
3 import com.google.gwt.core.client.GWT; | 3 import com.google.gwt.core.client.GWT; |
4 | 4 |
5 import com.smartgwt.client.widgets.Label; | 5 import com.smartgwt.client.widgets.Label; |
6 import com.smartgwt.client.widgets.Window; | 6 import com.smartgwt.client.widgets.Window; |
7 import com.smartgwt.client.widgets.layout.HLayout; | |
8 import com.smartgwt.client.widgets.layout.VLayout; | 7 import com.smartgwt.client.widgets.layout.VLayout; |
8 import com.smartgwt.client.widgets.viewer.DetailViewer; | |
9 import com.smartgwt.client.widgets.viewer.DetailViewerField; | |
10 import com.smartgwt.client.widgets.viewer.DetailViewerRecord; | |
9 | 11 |
10 import de.intevation.flys.client.client.FLYSConstants; | 12 import de.intevation.flys.client.client.FLYSConstants; |
11 import de.intevation.flys.client.shared.model.FeatureInfo; | 13 import de.intevation.flys.client.shared.model.FeatureInfo; |
12 | 14 |
15 import java.util.ArrayList; | |
13 import java.util.List; | 16 import java.util.List; |
14 import java.util.Map; | 17 import java.util.Map; |
15 import java.util.Set; | 18 import java.util.Set; |
19 import java.util.MissingResourceException; | |
16 | 20 |
17 import org.gwtopenmaps.openlayers.client.feature.VectorFeature; | 21 import org.gwtopenmaps.openlayers.client.feature.VectorFeature; |
18 import org.gwtopenmaps.openlayers.client.util.Attributes; | 22 import org.gwtopenmaps.openlayers.client.util.Attributes; |
19 import org.gwtopenmaps.openlayers.client.util.JSObject; | 23 import org.gwtopenmaps.openlayers.client.util.JSObject; |
20 | 24 |
23 | 27 |
24 protected FLYSConstants MSG = GWT.create(FLYSConstants.class); | 28 protected FLYSConstants MSG = GWT.create(FLYSConstants.class); |
25 | 29 |
26 protected List<FeatureInfo> features; | 30 protected List<FeatureInfo> features; |
27 | 31 |
32 protected String title; | |
33 | |
28 | 34 |
29 public static final int ROW_HEIGHT = 25; | 35 public static final int ROW_HEIGHT = 25; |
30 | 36 |
31 | 37 |
32 public GetFeatureInfoWindow(List<FeatureInfo> features) { | 38 public GetFeatureInfoWindow(List<FeatureInfo> features, String title) { |
33 super(); | 39 super(); |
34 this.features = features; | 40 this.features = features; |
41 this.title = title; | |
35 | 42 |
36 initLayout(); | 43 initLayout(); |
37 } | 44 } |
38 | 45 |
39 | 46 |
40 protected void initLayout() { | 47 protected void initLayout() { |
41 VLayout root = new VLayout(); | 48 VLayout root = new VLayout(); |
42 | 49 |
43 for (FeatureInfo feature: features) { | 50 for (FeatureInfo feature: features) { |
44 root.addMember(createFeatureRow(feature)); | 51 // Currently this should alway be only one |
52 root.addMember(createFeatureViewer(feature)); | |
53 setTitle(MSG.getFeatureInfoWindowTitle() + " " + title); | |
45 } | 54 } |
46 | 55 |
47 addItem(root); | 56 addItem(root); |
48 | 57 |
49 setWidth(500); | 58 setWidth(500); |
50 setHeight(500); | 59 setHeight(300); |
51 setTitle(MSG.getFeatureInfoWindowTitle()); | |
52 | 60 |
53 setIsModal(true); | 61 setIsModal(false); |
54 setShowModalMask(true); | 62 // setShowModalMask(true); |
55 | 63 |
56 centerInPage(); | 64 centerInPage(); |
57 } | 65 } |
58 | 66 |
59 | 67 |
60 protected HLayout createFeatureRow(FeatureInfo feature) { | 68 protected DetailViewer createFeatureViewer(FeatureInfo feature) { |
61 HLayout r = new HLayout(); | 69 DetailViewer detailViewer = new DetailViewer(); |
62 r.setHeight(ROW_HEIGHT); | 70 detailViewer.setWidth(487); |
63 r.setStyleName("featureinfo-row"); | |
64 r.setMembersMargin(5); | |
65 | |
66 Label l = new Label("Layer: " + feature.getLayername()); | |
67 l.setHeight(ROW_HEIGHT); | |
68 l.setWrap(false); | |
69 r.addMember(l); | |
70 | 71 |
71 Map<String, String> attrs = feature.getAttrs(); | 72 Map<String, String> attrs = feature.getAttrs(); |
72 Set<Map.Entry<String, String>> entries = attrs.entrySet(); | 73 Set<Map.Entry<String, String>> entries = attrs.entrySet(); |
74 List <DetailViewerField> fields = new ArrayList<DetailViewerField>(); | |
75 DetailViewerRecord dr = new DetailViewerRecord(); | |
76 | |
77 DetailViewerField path_field = null; // Make sure path is always the last element | |
73 | 78 |
74 for (Map.Entry<String, String> entry: entries) { | 79 for (Map.Entry<String, String> entry: entries) { |
75 Label attr = new Label(entry.getKey() + ": " + entry.getValue()); | 80 String localized; |
76 attr.setHeight(ROW_HEIGHT); | 81 try { |
82 localized = MSG.getString(entry.getKey()); | |
83 } catch (MissingResourceException mre) { | |
84 localized = entry.getKey(); | |
85 // We filter unwanted information by localization | |
86 // Uncomment to filter out unlocalized elements | |
87 // continue; | |
88 } | |
89 if (entry.getKey().equals("PATH")) { | |
90 path_field = new DetailViewerField(entry.getKey(), localized); | |
91 } else { | |
92 fields.add(new DetailViewerField(entry.getKey(), localized)); | |
93 } | |
94 dr.setAttribute(entry.getKey(), entry.getValue()); | |
95 } | |
96 if (path_field != null) | |
97 fields.add(path_field); | |
77 | 98 |
78 r.addMember(attr); | 99 DetailViewerField[] fieldArray = new DetailViewerField[fields.size()]; |
79 } | 100 detailViewer.setFields(fields.toArray(fieldArray)); |
101 detailViewer.setData(new DetailViewerRecord[]{dr}); | |
102 detailViewer.setCanSelectText(true); | |
80 | 103 |
81 return r; | 104 return detailViewer; |
82 } | 105 } |
83 | 106 |
84 | 107 |
85 protected String[][] extractProperties(VectorFeature feature) { | 108 protected String[][] extractProperties(VectorFeature feature) { |
86 Attributes tmp = feature.getAttributes(); | 109 Attributes tmp = feature.getAttributes(); |