annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/map/DrawControl.java @ 4221:480de0dbca8e

Extended location input helper. The locationpicker has now an attribute whether the input is distance or location to display one or two clickable columns. Replaced the record click handler with cell click handler.
author Raimund Renkert <rrenkert@intevation.de>
date Tue, 23 Oct 2012 13:17:20 +0200
parents cf0f906921de
children 8af500d62098
rev   line source
800
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.client.ui.map;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
3 import java.util.LinkedHashMap;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
4
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
5 import com.google.gwt.core.client.GWT;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
6
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
7 import com.smartgwt.client.types.SelectionType;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
8 import com.smartgwt.client.widgets.ImgButton;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
9 import com.smartgwt.client.widgets.events.ClickEvent;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10 import com.smartgwt.client.widgets.events.ClickHandler;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11 import com.smartgwt.client.widgets.form.DynamicForm;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12 import com.smartgwt.client.widgets.form.fields.SelectItem;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13 import com.smartgwt.client.widgets.form.fields.FormItem;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14 import com.smartgwt.client.widgets.form.fields.events.ChangedEvent;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15 import com.smartgwt.client.widgets.form.fields.events.ChangedHandler;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16 import com.smartgwt.client.widgets.layout.HLayout;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18 import org.gwtopenmaps.openlayers.client.Map;
1315
cf0f906921de #297 Implemented a window to adjust elevations of geometries in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1311
diff changeset
19 import org.gwtopenmaps.openlayers.client.Style;
800
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 import org.gwtopenmaps.openlayers.client.control.Control;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 import org.gwtopenmaps.openlayers.client.control.DrawFeature;
850
d02c3835df28 Set the 'typ' attribute of new features (digitized) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
22 import org.gwtopenmaps.openlayers.client.event.VectorFeatureAddedListener;
d02c3835df28 Set the 'typ' attribute of new features (digitized) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
23 import org.gwtopenmaps.openlayers.client.event.VectorFeatureAddedListener.FeatureAddedEvent;
d02c3835df28 Set the 'typ' attribute of new features (digitized) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
24 import org.gwtopenmaps.openlayers.client.feature.VectorFeature;
800
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25 import org.gwtopenmaps.openlayers.client.handler.Handler;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26 import org.gwtopenmaps.openlayers.client.handler.PathHandler;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27 import org.gwtopenmaps.openlayers.client.handler.PolygonHandler;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28 import org.gwtopenmaps.openlayers.client.layer.Vector;
850
d02c3835df28 Set the 'typ' attribute of new features (digitized) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
29 import org.gwtopenmaps.openlayers.client.util.Attributes;
800
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31 import de.intevation.flys.client.client.FLYSConstants;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 import de.intevation.flys.client.client.utils.EnableDisableCmd;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34
850
d02c3835df28 Set the 'typ' attribute of new features (digitized) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
35 public class DrawControl extends HLayout implements VectorFeatureAddedListener {
800
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37 public static final String BARRIER_PIPE1 = "pipe1";
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38 public static final String BARRIER_PIPE2 = "pipe2";
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39 public static final String BARRIER_DITCH = "ditch";
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40 public static final String BARRIER_DAM = "dam";
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41 public static final String BARRIER_RINGDIKE = "ring_dike";
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42
882
d3b4010d2c89 I293: Set the style of digitized features in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 880
diff changeset
43 public static final String BARRIER_PIPE1_VALUE = "Rohr 1";
d3b4010d2c89 I293: Set the style of digitized features in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 880
diff changeset
44 public static final String BARRIER_PIPE2_VALUE = "Rohr 2";
d3b4010d2c89 I293: Set the style of digitized features in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 880
diff changeset
45 public static final String BARRIER_DITCH_VALUE = "Graben";
d3b4010d2c89 I293: Set the style of digitized features in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 880
diff changeset
46 public static final String BARRIER_DAM_VALUE = "Damm";
d3b4010d2c89 I293: Set the style of digitized features in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 880
diff changeset
47 public static final String BARRIER_RINGDIKE_VALUE = "Ringdeich";
d3b4010d2c89 I293: Set the style of digitized features in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 880
diff changeset
48
800
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49 public static final String FIELD_BARRIER_TYPE = "field_barrier_type";
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52 protected FLYSConstants MSG = GWT.create(FLYSConstants.class);
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
53
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
54 protected EnableDisableCmd cmd;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56 protected ImgButton button;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57 protected DynamicForm form;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
59 protected Map map;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
60 protected Vector layer;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
61
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
62 protected Control control;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 public DrawControl(Map map, Vector layer, EnableDisableCmd cmd) {
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 this.map = map;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67 this.layer = layer;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68 this.cmd = cmd;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
69
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
70 initialize();
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71 }
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
72
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74 protected void initialize() {
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75 setWidth(100);
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
76 setMembersMargin(0);
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
78 button = new ImgButton();
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80 String baseUrl = GWT.getHostPageBaseURL();
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81 button.setSrc(baseUrl + MSG.digitize());
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82 button.setActionType(SelectionType.CHECKBOX);
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83 button.setSize(20);
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84 button.setShowRollOver(false);
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85 button.setSelected(false);
880
22dc88b17253 Added tooltips for the maptoolbar.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 860
diff changeset
86 button.setTooltip(MSG.digitizeObjects());
800
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
88 button.addClickHandler(new ClickHandler() {
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
89 public void onClick(ClickEvent e) {
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
90 if (button.isSelected()) {
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
91 cmd.enable();
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
92 }
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
93 else {
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
94 cmd.disable();
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
95 }
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
96 }
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
97 });
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
98
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
99 form = new DynamicForm();
1311
981dde77b49f #288 Added icons to the barriers combobox for digitizing features.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 882
diff changeset
100 form.setWidth(100);
800
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
101 form.setTitlePrefix("");
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
102 form.setTitleSuffix("");
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
103
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
104 LinkedHashMap<String, String> map = new LinkedHashMap<String, String>();
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
105 map.put(BARRIER_PIPE1, MSG.getString(BARRIER_PIPE1));
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
106 map.put(BARRIER_PIPE2, MSG.getString(BARRIER_PIPE2));
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
107 map.put(BARRIER_DITCH, MSG.getString(BARRIER_DITCH));
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
108 map.put(BARRIER_DAM, MSG.getString(BARRIER_DAM));
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
109 map.put(BARRIER_RINGDIKE, MSG.getString(BARRIER_RINGDIKE));
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
110
1311
981dde77b49f #288 Added icons to the barriers combobox for digitizing features.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 882
diff changeset
111 LinkedHashMap<String, String> ics = new LinkedHashMap<String, String>();
981dde77b49f #288 Added icons to the barriers combobox for digitizing features.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 882
diff changeset
112 ics.put(BARRIER_PIPE1, BARRIER_PIPE1);
981dde77b49f #288 Added icons to the barriers combobox for digitizing features.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 882
diff changeset
113 ics.put(BARRIER_PIPE2, BARRIER_PIPE2);
981dde77b49f #288 Added icons to the barriers combobox for digitizing features.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 882
diff changeset
114 ics.put(BARRIER_DITCH, BARRIER_DITCH);
981dde77b49f #288 Added icons to the barriers combobox for digitizing features.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 882
diff changeset
115 ics.put(BARRIER_DAM, BARRIER_DAM);
981dde77b49f #288 Added icons to the barriers combobox for digitizing features.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 882
diff changeset
116 ics.put(BARRIER_RINGDIKE, BARRIER_RINGDIKE);
981dde77b49f #288 Added icons to the barriers combobox for digitizing features.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 882
diff changeset
117
800
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
118 SelectItem box = new SelectItem(FIELD_BARRIER_TYPE);
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
119 box.setTitle("");
1311
981dde77b49f #288 Added icons to the barriers combobox for digitizing features.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 882
diff changeset
120 box.setWidth(100);
800
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
121 box.setValueMap(map);
1311
981dde77b49f #288 Added icons to the barriers combobox for digitizing features.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 882
diff changeset
122 box.setImageURLSuffix(".png");
981dde77b49f #288 Added icons to the barriers combobox for digitizing features.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 882
diff changeset
123 box.setValueIcons(ics);
981dde77b49f #288 Added icons to the barriers combobox for digitizing features.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 882
diff changeset
124
800
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
125 box.addChangedHandler(new ChangedHandler() {
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
126 public void onChanged(ChangedEvent e) {
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
127 setSelectedControl();
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
128 }
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
129 });
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
130
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
131 form.setFields(box);
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
132
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
133 addMember(button);
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
134 addMember(form);
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
135
850
d02c3835df28 Set the 'typ' attribute of new features (digitized) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
136 layer.addVectorFeatureAddedListener(this);
d02c3835df28 Set the 'typ' attribute of new features (digitized) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
137
800
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
138 activate(false);
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
139 }
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
140
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
141
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
142 protected String getSelectedType() {
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
143 return form.getValueAsString(FIELD_BARRIER_TYPE);
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
144 }
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
145
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
146
850
d02c3835df28 Set the 'typ' attribute of new features (digitized) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
147 public void onFeatureAdded(FeatureAddedEvent evt) {
d02c3835df28 Set the 'typ' attribute of new features (digitized) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
148 setCurrentType(evt.getVectorFeature());
d02c3835df28 Set the 'typ' attribute of new features (digitized) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
149 }
d02c3835df28 Set the 'typ' attribute of new features (digitized) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
150
d02c3835df28 Set the 'typ' attribute of new features (digitized) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
151
d02c3835df28 Set the 'typ' attribute of new features (digitized) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
152 protected void setCurrentType(VectorFeature feature) {
d02c3835df28 Set the 'typ' attribute of new features (digitized) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
153 Attributes attrs = feature.getAttributes();
d02c3835df28 Set the 'typ' attribute of new features (digitized) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
154 String type = attrs.getAttributeAsString("typ");
d02c3835df28 Set the 'typ' attribute of new features (digitized) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
155
d02c3835df28 Set the 'typ' attribute of new features (digitized) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
156 if (type == null || type.length() == 0) {
d02c3835df28 Set the 'typ' attribute of new features (digitized) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
157 type = getSelectedType();
860
f5855350fc03 Set WSPLGEN specific 'type' attributes after digitizing new geometries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 850
diff changeset
158
1315
cf0f906921de #297 Implemented a window to adjust elevations of geometries in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1311
diff changeset
159 Style style = FloodMap.getStyle(type);
cf0f906921de #297 Implemented a window to adjust elevations of geometries in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1311
diff changeset
160 if (style != null) {
cf0f906921de #297 Implemented a window to adjust elevations of geometries in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1311
diff changeset
161 feature.setStyle(style);
cf0f906921de #297 Implemented a window to adjust elevations of geometries in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1311
diff changeset
162 }
882
d3b4010d2c89 I293: Set the style of digitized features in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 880
diff changeset
163
860
f5855350fc03 Set WSPLGEN specific 'type' attributes after digitizing new geometries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 850
diff changeset
164 if (type.equals(BARRIER_PIPE1)) {
882
d3b4010d2c89 I293: Set the style of digitized features in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 880
diff changeset
165 attrs.setAttribute("typ", BARRIER_PIPE1_VALUE);
860
f5855350fc03 Set WSPLGEN specific 'type' attributes after digitizing new geometries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 850
diff changeset
166 }
f5855350fc03 Set WSPLGEN specific 'type' attributes after digitizing new geometries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 850
diff changeset
167 else if (type.equals(BARRIER_PIPE2)) {
882
d3b4010d2c89 I293: Set the style of digitized features in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 880
diff changeset
168 attrs.setAttribute("typ", BARRIER_PIPE2_VALUE);
860
f5855350fc03 Set WSPLGEN specific 'type' attributes after digitizing new geometries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 850
diff changeset
169 }
f5855350fc03 Set WSPLGEN specific 'type' attributes after digitizing new geometries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 850
diff changeset
170 else if (type.equals(BARRIER_DAM)) {
882
d3b4010d2c89 I293: Set the style of digitized features in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 880
diff changeset
171 attrs.setAttribute("typ", BARRIER_DAM_VALUE);
860
f5855350fc03 Set WSPLGEN specific 'type' attributes after digitizing new geometries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 850
diff changeset
172 }
f5855350fc03 Set WSPLGEN specific 'type' attributes after digitizing new geometries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 850
diff changeset
173 else if (type.equals(BARRIER_DITCH)) {
882
d3b4010d2c89 I293: Set the style of digitized features in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 880
diff changeset
174 attrs.setAttribute("typ", BARRIER_DITCH_VALUE);
860
f5855350fc03 Set WSPLGEN specific 'type' attributes after digitizing new geometries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 850
diff changeset
175 }
f5855350fc03 Set WSPLGEN specific 'type' attributes after digitizing new geometries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 850
diff changeset
176 else if (type.equals(BARRIER_RINGDIKE)) {
882
d3b4010d2c89 I293: Set the style of digitized features in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 880
diff changeset
177 attrs.setAttribute("typ", BARRIER_RINGDIKE_VALUE);
860
f5855350fc03 Set WSPLGEN specific 'type' attributes after digitizing new geometries.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 850
diff changeset
178 }
882
d3b4010d2c89 I293: Set the style of digitized features in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 880
diff changeset
179
d3b4010d2c89 I293: Set the style of digitized features in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 880
diff changeset
180 layer.redraw();
850
d02c3835df28 Set the 'typ' attribute of new features (digitized) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
181 }
d02c3835df28 Set the 'typ' attribute of new features (digitized) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
182 }
d02c3835df28 Set the 'typ' attribute of new features (digitized) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
183
d02c3835df28 Set the 'typ' attribute of new features (digitized) in the map.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 800
diff changeset
184
800
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
185 protected void removeControl() {
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
186 if (control != null) {
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
187 control.deactivate();
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
188 map.removeControl(control);
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
189 }
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
190 }
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
191
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
192
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
193 protected void setSelectedControl() {
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
194 removeControl();
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
195
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
196 String type = getSelectedType();
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
197
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
198 if (type == null || type.length() == 0) {
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
199 return;
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
200 }
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
201
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
202 if (type.equalsIgnoreCase(BARRIER_RINGDIKE)) {
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
203 control = createDrawPolygonControl();
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
204 }
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
205 else {
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
206 control = createDrawLineControl();
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
207 }
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
208
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
209 map.addControl(control);
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
210 control.activate();
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
211 }
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
212
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
213
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
214 protected Control createDrawControl(Handler handler) {
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
215 return new DrawFeature(layer, handler);
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
216 }
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
217
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
218
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
219 protected Control createDrawPolygonControl() {
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
220 return createDrawControl(new PolygonHandler());
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
221 }
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
222
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
223
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
224 protected Control createDrawLineControl() {
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
225 return createDrawControl(new PathHandler());
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
226 }
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
227
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
228
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
229 public void activate(boolean activate) {
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
230 FormItem item = form.getField(FIELD_BARRIER_TYPE);
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
231
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
232 if (activate) {
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
233 button.select();
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
234 item.enable();
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
235 setSelectedControl();
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
236 }
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
237 else {
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
238 removeControl();
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
239 button.deselect();
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
240 item.disable();
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
241 }
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
242 }
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
243 }
95cc560ce7c4 Added map controls for digitizing and removing barriers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
244 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org