Mercurial > dive4elements > river
diff 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 |
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/GetFeatureInfoWindow.java Wed Apr 24 14:51:55 2013 +0200 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/GetFeatureInfoWindow.java Wed Apr 24 14:58:14 2013 +0200 @@ -4,15 +4,19 @@ import com.smartgwt.client.widgets.Label; import com.smartgwt.client.widgets.Window; -import com.smartgwt.client.widgets.layout.HLayout; import com.smartgwt.client.widgets.layout.VLayout; +import com.smartgwt.client.widgets.viewer.DetailViewer; +import com.smartgwt.client.widgets.viewer.DetailViewerField; +import com.smartgwt.client.widgets.viewer.DetailViewerRecord; import de.intevation.flys.client.client.FLYSConstants; import de.intevation.flys.client.shared.model.FeatureInfo; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.MissingResourceException; import org.gwtopenmaps.openlayers.client.feature.VectorFeature; import org.gwtopenmaps.openlayers.client.util.Attributes; @@ -25,13 +29,16 @@ protected List<FeatureInfo> features; + protected String title; + public static final int ROW_HEIGHT = 25; - public GetFeatureInfoWindow(List<FeatureInfo> features) { + public GetFeatureInfoWindow(List<FeatureInfo> features, String title) { super(); this.features = features; + this.title = title; initLayout(); } @@ -41,44 +48,60 @@ VLayout root = new VLayout(); for (FeatureInfo feature: features) { - root.addMember(createFeatureRow(feature)); + // Currently this should alway be only one + root.addMember(createFeatureViewer(feature)); + setTitle(MSG.getFeatureInfoWindowTitle() + " " + title); } addItem(root); setWidth(500); - setHeight(500); - setTitle(MSG.getFeatureInfoWindowTitle()); + setHeight(300); - setIsModal(true); - setShowModalMask(true); + setIsModal(false); +// setShowModalMask(true); centerInPage(); } - protected HLayout createFeatureRow(FeatureInfo feature) { - HLayout r = new HLayout(); - r.setHeight(ROW_HEIGHT); - r.setStyleName("featureinfo-row"); - r.setMembersMargin(5); - - Label l = new Label("Layer: " + feature.getLayername()); - l.setHeight(ROW_HEIGHT); - l.setWrap(false); - r.addMember(l); + protected DetailViewer createFeatureViewer(FeatureInfo feature) { + DetailViewer detailViewer = new DetailViewer(); + detailViewer.setWidth(487); Map<String, String> attrs = feature.getAttrs(); Set<Map.Entry<String, String>> entries = attrs.entrySet(); + List <DetailViewerField> fields = new ArrayList<DetailViewerField>(); + DetailViewerRecord dr = new DetailViewerRecord(); + + DetailViewerField path_field = null; // Make sure path is always the last element for (Map.Entry<String, String> entry: entries) { - Label attr = new Label(entry.getKey() + ": " + entry.getValue()); - attr.setHeight(ROW_HEIGHT); + String localized; + try { + localized = MSG.getString(entry.getKey()); + } catch (MissingResourceException mre) { + localized = entry.getKey(); +// We filter unwanted information by localization +// Uncomment to filter out unlocalized elements +// continue; + } + if (entry.getKey().equals("PATH")) { + path_field = new DetailViewerField(entry.getKey(), localized); + } else { + fields.add(new DetailViewerField(entry.getKey(), localized)); + } + dr.setAttribute(entry.getKey(), entry.getValue()); + } + if (path_field != null) + fields.add(path_field); - r.addMember(attr); - } + DetailViewerField[] fieldArray = new DetailViewerField[fields.size()]; + detailViewer.setFields(fields.toArray(fieldArray)); + detailViewer.setData(new DetailViewerRecord[]{dr}); + detailViewer.setCanSelectText(true); - return r; + return detailViewer; }