Mercurial > dive4elements > river
diff flys-client/src/main/java/de/intevation/flys/client/client/ui/map/GetFeatureInfoWindow.java @ 1402:15ef3d3081b7
Parse GetFeatureInfo response on our own and display resulting FeatureInfo objects in the GetFeatureInfoWindow.
flys-client/trunk@3287 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Fri, 18 Nov 2011 11:39:10 +0000 |
parents | 96708d81eaf6 |
children | 656df7c0bdda |
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/GetFeatureInfoWindow.java Thu Nov 17 16:24:09 2011 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/GetFeatureInfoWindow.java Fri Nov 18 11:39:10 2011 +0000 @@ -1,5 +1,9 @@ package de.intevation.flys.client.client.ui.map; +import java.util.List; +import java.util.Map; +import java.util.Set; + import com.google.gwt.core.client.GWT; import com.smartgwt.client.widgets.Label; @@ -8,10 +12,11 @@ import com.smartgwt.client.widgets.layout.VLayout; import org.gwtopenmaps.openlayers.client.feature.VectorFeature; -import org.gwtopenmaps.openlayers.client.format.GML; import org.gwtopenmaps.openlayers.client.util.Attributes; import org.gwtopenmaps.openlayers.client.util.JSObject; +import de.intevation.flys.client.shared.model.FeatureInfo; + import de.intevation.flys.client.client.FLYSConstants; @@ -19,12 +24,16 @@ protected FLYSConstants MSG = GWT.create(FLYSConstants.class); - protected VectorFeature[] features; + protected List<FeatureInfo> features; - public GetFeatureInfoWindow(String gml) { + public static final int ROW_HEIGHT = 25; + + + public GetFeatureInfoWindow(List<FeatureInfo> features) { super(); - features = new GML().read(gml); + this.features = features; + initLayout(); } @@ -32,31 +41,41 @@ protected void initLayout() { VLayout root = new VLayout(); - for (VectorFeature feature: features) { + int rows = 0; + + for (FeatureInfo feature: features) { root.addMember(createFeatureRow(feature)); + rows++; } addItem(root); setWidth(400); - setHeight(200); + setHeight(50 + rows * ROW_HEIGHT); setTitle(MSG.getFeatureInfoWindowTitle()); centerInPage(); } - protected HLayout createFeatureRow(VectorFeature feature) { + protected HLayout createFeatureRow(FeatureInfo feature) { HLayout r = new HLayout(); - r.setHeight(25); + r.setHeight(ROW_HEIGHT); + r.setStyleName("featureinfo-row"); - String[][] attrs = extractProperties(feature); + Label l = new Label("Layer: " + feature.getLayername()); + l.setHeight(ROW_HEIGHT); - for (String[] attr: attrs) { - Label l = new Label(attr[0] + ": " + attr[1]); - l.setHeight(25); - l.setBorder("1px solid black"); - r.addMember(l); + r.addMember(l); + + Map<String, String> attrs = feature.getAttrs(); + Set<Map.Entry<String, String>> entries = attrs.entrySet(); + + for (Map.Entry entry: entries) { + Label attr = new Label(entry.getKey() + ": " + entry.getValue()); + attr.setHeight(ROW_HEIGHT); + + r.addMember(attr); } return r;