# HG changeset patch # User Christian Lins # Date 1365504297 -7200 # Node ID 80e8ef91223c2ab4af1c673396dc73f81afb6021 # Parent 62513c9183ba2f595d55e7b566431d17eb6140b3 Fix for #802: digitized pipes and dikes should be visible now diff -r 62513c9183ba -r 80e8ef91223c flys-client/src/main/java/de/intevation/flys/client/client/ui/map/DrawControl.java --- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/DrawControl.java Tue Apr 09 12:00:52 2013 +0200 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/DrawControl.java Tue Apr 09 12:44:57 2013 +0200 @@ -1,7 +1,6 @@ package de.intevation.flys.client.client.ui.map; import com.google.gwt.core.client.GWT; - import com.smartgwt.client.types.SelectionType; import com.smartgwt.client.widgets.ImgButton; import com.smartgwt.client.widgets.events.ClickEvent; @@ -30,7 +29,9 @@ import org.gwtopenmaps.openlayers.client.layer.Vector; import org.gwtopenmaps.openlayers.client.util.Attributes; - +/** + * Widget that handles the drawing of pipes and dikes in the DigitizePanel (MapPanel). + */ public class DrawControl extends HLayout implements VectorFeatureAddedListener { public static final String BARRIER_PIPE1 = "pipe1"; @@ -39,6 +40,7 @@ public static final String BARRIER_DAM = "dam"; public static final String BARRIER_RINGDIKE = "ring_dike"; + // FIXME: i18n public static final String BARRIER_PIPE1_VALUE = "Rohr 1"; public static final String BARRIER_PIPE2_VALUE = "Rohr 2"; public static final String BARRIER_DITCH_VALUE = "Graben"; @@ -76,7 +78,7 @@ button = new ImgButton(); - String baseUrl = GWT.getHostPageBaseURL(); + final String baseUrl = GWT.getHostPageBaseURL(); button.setSrc(baseUrl + MSG.digitize()); button.setActionType(SelectionType.CHECKBOX); button.setSize(20); @@ -101,21 +103,21 @@ form.setTitlePrefix(""); form.setTitleSuffix(""); - LinkedHashMap map = new LinkedHashMap(); + final LinkedHashMap map = new LinkedHashMap(); map.put(BARRIER_PIPE1, MSG.getString(BARRIER_PIPE1)); map.put(BARRIER_PIPE2, MSG.getString(BARRIER_PIPE2)); map.put(BARRIER_DITCH, MSG.getString(BARRIER_DITCH)); map.put(BARRIER_DAM, MSG.getString(BARRIER_DAM)); map.put(BARRIER_RINGDIKE, MSG.getString(BARRIER_RINGDIKE)); - LinkedHashMap ics = new LinkedHashMap(); + final LinkedHashMap ics = new LinkedHashMap(); ics.put(BARRIER_PIPE1, BARRIER_PIPE1); ics.put(BARRIER_PIPE2, BARRIER_PIPE2); ics.put(BARRIER_DITCH, BARRIER_DITCH); ics.put(BARRIER_DAM, BARRIER_DAM); ics.put(BARRIER_RINGDIKE, BARRIER_RINGDIKE); - SelectItem box = new SelectItem(FIELD_BARRIER_TYPE); + final SelectItem box = new SelectItem(FIELD_BARRIER_TYPE); box.setTitle(""); box.setWidth(100); box.setValueMap(map); @@ -152,13 +154,13 @@ protected void setCurrentType(VectorFeature feature) { - Attributes attrs = feature.getAttributes(); + final Attributes attrs = feature.getAttributes(); String type = attrs.getAttributeAsString("typ"); if (type == null || type.length() == 0) { type = getSelectedType(); - Style style = FloodMap.getStyle(type); + final Style style = FloodMap.getStyle(type); if (style != null) { feature.setStyle(style); } @@ -195,7 +197,7 @@ protected void setSelectedControl() { removeControl(); - String type = getSelectedType(); + final String type = getSelectedType(); if (type == null || type.length() == 0) { return; @@ -210,6 +212,9 @@ map.addControl(control); control.activate(); + + // Make sure the barrier layer is on top; sometime it looses it z-index... + layer.setZIndex(1000); } @@ -229,7 +234,7 @@ public void activate(boolean activate) { - FormItem item = form.getField(FIELD_BARRIER_TYPE); + final FormItem item = form.getField(FIELD_BARRIER_TYPE); if (activate) { button.select(); diff -r 62513c9183ba -r 80e8ef91223c flys-client/src/main/java/de/intevation/flys/client/client/ui/map/FloodMap.java --- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/FloodMap.java Tue Apr 09 12:00:52 2013 +0200 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/FloodMap.java Tue Apr 09 12:44:57 2013 +0200 @@ -44,7 +44,7 @@ public void recreateWidget(int width, int height) { - MapOptions opts = new MapOptions(); + final MapOptions opts = new MapOptions(); opts.setControls(new JObjectArray(new JSObject[] {})); opts.setNumZoomLevels(16); opts.setProjection(getRiverProjection()); @@ -63,22 +63,22 @@ @Override public void onFeatureAdded(FeatureAddedEvent evt) { - VectorFeature feature = evt.getVectorFeature(); + final VectorFeature feature = evt.getVectorFeature(); - Attributes attrs = feature.getAttributes(); - String type = attrs.getAttributeAsString("typ"); + final Attributes attrs = feature.getAttributes(); + final String type = attrs.getAttributeAsString("typ"); if (type == null || type.length() == 0) { return; } - Style style = getStyle(type); + final Style style = getStyle(type); if (style != null) { feature.setStyle(style); } // necessary, otherwise the setStyle() has no effect - barrierLayer.redraw(); + getBarrierLayer().redraw(); } @@ -91,7 +91,7 @@ * @return an OpenLayers.Style object. */ public static Style getStyle(String type) { - Style style = new Style(); + final Style style = new Style(); if (type == null) { return null; @@ -154,7 +154,7 @@ public Vector getBarrierLayer() { if (barrierLayer == null) { - VectorOptions opts = new VectorOptions(); + final VectorOptions opts = new VectorOptions(); opts.setProjection(getRiverProjection()); opts.setMaxExtent(getMaxExtent()); @@ -175,7 +175,7 @@ // disable features before exporting to GeoJSON disableFeatures(); - VectorFeature[] features = barrierLayer.getFeatures(); + final VectorFeature[] features = barrierLayer.getFeatures(); if (features == null || features.length == 0) { return null; @@ -188,8 +188,8 @@ public void setSize(String width, String height) { mapWidget.setWidth(width); mapWidget.setHeight(height); - int currentZoom = map.getZoom(); - LonLat currentCenter = map.getCenter(); + final int currentZoom = map.getZoom(); + final LonLat currentCenter = map.getCenter(); map.updateSize(); map.zoomTo(currentZoom); map.setCenter(currentCenter); @@ -200,8 +200,8 @@ if (layer != null) { map.addLayer(layer); - int index = map.getLayerIndex(layer); - int newIndex = index * (-1) + 1; + final int index = map.getLayerIndex(layer); + final int newIndex = index * (-1) + 1; map.raiseLayer(layer, newIndex); @@ -211,13 +211,13 @@ public void hideBarrierLayer () { - if (barrierLayer != null) { + if (getBarrierLayer() != null) { barrierLayer.setIsVisible(false); } } public void showBarrierLayer () { - if (barrierLayer != null) { + if (getBarrierLayer() != null) { barrierLayer.setIsVisible(true); } } @@ -235,8 +235,8 @@ return; } - for (VectorFeature feature: features) { - Attributes attr = feature.getAttributes(); + for (final VectorFeature feature: features) { + final Attributes attr = feature.getAttributes(); if (attr.getAttributeAsInt(MARK_SELECTED) == 1) { continue; @@ -244,8 +244,8 @@ attr.setAttribute(MARK_SELECTED, 1); - Style style = feature.getStyle(); - double strokeWidth = style.getStrokeWidth(); + final Style style = feature.getStyle(); + final double strokeWidth = style.getStrokeWidth(); style.setStrokeWidth(strokeWidth+SELECTED_STROKE_WIDTH); } @@ -255,8 +255,8 @@ public void disableFeatures() { - Vector barriers = getBarrierLayer(); - VectorFeature[] features = barriers.getFeatures(); + final Vector barriers = getBarrierLayer(); + final VectorFeature[] features = barriers.getFeatures(); if (features == null || features.length == 0) { return; @@ -278,8 +278,8 @@ return; } - for (VectorFeature feature: features) { - Attributes attr = feature.getAttributes(); + for (final VectorFeature feature: features) { + final Attributes attr = feature.getAttributes(); if (attr.getAttributeAsInt(MARK_SELECTED) == 0) { continue; @@ -287,8 +287,8 @@ attr.setAttribute(FloodMap.MARK_SELECTED, 0); - Style style = feature.getStyle(); - double strokeWidth = style.getStrokeWidth(); + final Style style = feature.getStyle(); + final double strokeWidth = style.getStrokeWidth(); style.setStrokeWidth(strokeWidth-SELECTED_STROKE_WIDTH); } @@ -298,17 +298,19 @@ public void update() { - Layer[] layers = map.getLayers(); + final Layer[] layers = map.getLayers(); - for (Layer l: layers) { + for (final Layer l: layers) { l.redraw(); } + + getBarrierLayer(); // Raises Z-Index to 1000 again } public void activateScaleLine(boolean activate) { if (activate) { - ScaleLineOptions slOpts = new ScaleLineOptions(); + final ScaleLineOptions slOpts = new ScaleLineOptions(); slOpts.setBottomInUnits("m"); slOpts.setBottomOutUnits("km"); slOpts.setTopInUnits("");