comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/DigitizePanel.java @ 2494:88b51e6e0334

Issue 657. Added UI and service for shapefile upload. flys-client/trunk@4294 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Wed, 25 Apr 2012 07:58:58 +0000
parents bc06a671ef60
children 145980c21700
comparison
equal deleted inserted replaced
2493:f905c936ffff 2494:88b51e6e0334
1 package de.intevation.flys.client.client.ui; 1 package de.intevation.flys.client.client.ui;
2 2
3 import java.util.List; 3 import java.util.List;
4 import java.util.LinkedHashMap;
4 5
5 import com.google.gwt.core.client.GWT; 6 import com.google.gwt.core.client.GWT;
6 import com.google.gwt.user.client.rpc.AsyncCallback; 7 import com.google.gwt.user.client.rpc.AsyncCallback;
7 8
8 import com.smartgwt.client.util.SC; 9 import com.smartgwt.client.util.SC;
9 import com.smartgwt.client.widgets.Canvas; 10 import com.smartgwt.client.widgets.Canvas;
11 import com.smartgwt.client.widgets.Button;
12 import com.smartgwt.client.widgets.Label;
10 import com.smartgwt.client.widgets.events.ResizedEvent; 13 import com.smartgwt.client.widgets.events.ResizedEvent;
11 import com.smartgwt.client.widgets.events.ResizedHandler; 14 import com.smartgwt.client.widgets.events.ResizedHandler;
15 import com.smartgwt.client.widgets.events.ClickEvent;
16 import com.smartgwt.client.widgets.events.ClickHandler;
12 import com.smartgwt.client.widgets.tab.events.TabSelectedHandler; 17 import com.smartgwt.client.widgets.tab.events.TabSelectedHandler;
13 import com.smartgwt.client.widgets.tab.events.TabSelectedEvent; 18 import com.smartgwt.client.widgets.tab.events.TabSelectedEvent;
14 import com.smartgwt.client.widgets.events.VisibilityChangedHandler; 19 import com.smartgwt.client.widgets.events.VisibilityChangedHandler;
15 import com.smartgwt.client.widgets.events.VisibilityChangedEvent; 20 import com.smartgwt.client.widgets.events.VisibilityChangedEvent;
21 import com.smartgwt.client.widgets.layout.VLayout;
22 import com.smartgwt.client.widgets.form.DynamicForm;
23 import com.smartgwt.client.widgets.form.fields.UploadItem;
24 import com.smartgwt.client.widgets.form.fields.SelectItem;
25 import com.smartgwt.client.types.VerticalAlignment;
26 import com.smartgwt.client.widgets.HTMLPane;
27 import com.smartgwt.client.types.Encoding;
16 28
17 import org.gwtopenmaps.openlayers.client.Map; 29 import org.gwtopenmaps.openlayers.client.Map;
18 import org.gwtopenmaps.openlayers.client.feature.VectorFeature; 30 import org.gwtopenmaps.openlayers.client.feature.VectorFeature;
19 import org.gwtopenmaps.openlayers.client.format.GeoJSON; 31 import org.gwtopenmaps.openlayers.client.format.GeoJSON;
20 import org.gwtopenmaps.openlayers.client.layer.WMS; 32 import org.gwtopenmaps.openlayers.client.layer.WMS;
102 114
103 return selectBox; 115 return selectBox;
104 } 116 }
105 117
106 118
119 /**
120 * This method creates the content of the widget.
121 *
122 * @param data The {@link DataList} object.
123 *
124 * @return a combobox.
125 */
126 protected Canvas createWidget(DataList data) {
127 GWT.log("DigitizePanel - createWidget()");
128
129 VLayout layout = new VLayout();
130 layout.setAlign(VerticalAlignment.TOP);
131 layout.setHeight(25);
132
133 LinkedHashMap initial = new LinkedHashMap();
134
135 form = new DynamicForm();
136
137 int size = data.size();
138
139 for (int i = 0; i < size; i++) {
140 Data d = data.get(i);
141
142 Label label = new Label(d.getDescription());
143 label.setValign(VerticalAlignment.TOP);
144 label.setHeight(20);
145 label.setWidth(400);
146
147 SelectItem combobox = new SelectItem(d.getLabel());
148 combobox.setWidth(250);
149
150 LinkedHashMap<String, String> it = new LinkedHashMap<String, String>();
151
152 boolean defaultSet = false;
153 boolean first = true;
154
155 DataItem def = d.getDefault();
156 String defValue = def != null ? def.getStringValue() : null;
157
158 if (defValue != null && defValue.length() > 0) {
159 initial.put(d.getLabel(), def.getStringValue());
160 defaultSet = true;
161 }
162
163 // I was here.
164 for (DataItem item: d.getItems()) {
165 if (!defaultSet && first) {
166 initial.put(d.getLabel(), item.getStringValue());
167 first = false;
168 }
169
170 it.put(item.getStringValue(), item.getLabel());
171 }
172
173 label.setWidth(50);
174 combobox.setValueMap(it);
175 combobox.setShowTitle(false);
176 form.setItems(combobox);
177
178 HTMLPane frame = new HTMLPane();
179 frame.setWidth("1px");
180 frame.setHeight("1px");
181 frame.setContents("<iframe id='uploadTarget' name='uploadTarget'></iframe>");
182
183 final DynamicForm uploadForm = new DynamicForm();
184 uploadForm.setAction("flys/fileupload?uuid=" + artifact.getUuid());
185 uploadForm.setTarget("uploadTarget");
186 uploadForm.setEncoding(Encoding.MULTIPART);
187 Label uploadLabel = new Label(MSG.shape_file_upload());
188 uploadLabel.setHeight(20);
189 UploadItem uploadItem = new UploadItem();
190 uploadItem.setShowTitle(false);
191 uploadForm.setFields(uploadItem);
192 Button submit = new Button(MSG.upload_file());
193 submit.addClickHandler(new ClickHandler() {
194 public void onClick(ClickEvent e) {
195 uploadForm.submitForm();
196 }
197 });
198 layout.addMember(frame);
199 layout.addMember(label);
200 layout.addMember(form);
201 layout.addMember(uploadLabel);
202 layout.addMember(uploadForm);
203 layout.addMember(submit);
204 }
205
206 form.setValues(initial);
207
208 layout.setAlign(VerticalAlignment.TOP);
209
210 return layout;
211 }
212
213
107 @Override 214 @Override
108 protected Data[] getData() { 215 protected Data[] getData() {
109 Data[] data = super.getData(); 216 Data[] data = super.getData();
110 Data[] total = new Data[2]; 217 Data[] total = new Data[2];
111 218

http://dive4elements.wald.intevation.org