comparison gwt-client/src/main/java/org/dive4elements/river/client/client/ui/RangePanel.java @ 5838:5aa05a7a34b7

Rename modules to more fitting names.
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 15:23:37 +0200
parents flys-client/src/main/java/org/dive4elements/river/client/client/ui/RangePanel.java@821a02bbfb4e
children 172338b1407f
comparison
equal deleted inserted replaced
5837:d9901a08d0a6 5838:5aa05a7a34b7
1 package org.dive4elements.river.client.client.ui;
2
3 import com.google.gwt.core.client.GWT;
4
5 import com.smartgwt.client.types.Alignment;
6 import com.smartgwt.client.widgets.Canvas;
7 import com.smartgwt.client.widgets.Label;
8 import com.smartgwt.client.widgets.form.DynamicForm;
9 import com.smartgwt.client.widgets.form.fields.FormItem;
10 import com.smartgwt.client.widgets.form.fields.TextItem;
11 import com.smartgwt.client.widgets.form.validator.Validator;
12 import com.smartgwt.client.widgets.layout.HLayout;
13 import com.smartgwt.client.widgets.layout.VLayout;
14
15 import org.dive4elements.river.client.client.FLYSConstants;
16 import org.dive4elements.river.client.shared.model.Data;
17 import org.dive4elements.river.client.shared.model.DataItem;
18 import org.dive4elements.river.client.shared.model.DataList;
19 import org.dive4elements.river.client.shared.model.RangeData;
20
21 import java.util.ArrayList;
22 import java.util.List;
23
24
25 /**
26 * An UIProvider for inserting ranges.
27 *
28 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
29 */
30 public abstract class RangePanel extends AbstractUIProvider {
31
32 private static final long serialVersionUID = -9213089589150335651L;
33
34 public static final String FIELD_LOWER = "field_lower";
35 public static final String FIELD_UPPER = "field_upper";
36
37
38 protected FLYSConstants MSG = GWT.create(FLYSConstants.class);
39
40 protected DynamicForm lowerForm;
41 protected DynamicForm upperForm;
42
43 protected String dataName;
44
45
46 public abstract Object getMaxLower();
47
48 public abstract Object getMaxUpper();
49
50
51
52 @Override
53 public Canvas create(DataList data) {
54 setDataName(data);
55
56 VLayout root = new VLayout();
57
58 root.addMember(createLabel(data));
59 root.addMember(createForm(data));
60 root.addMember(getNextButton());
61
62 initDefaults(data);
63
64 return root;
65 }
66
67
68 @Override
69 public Canvas createOld(DataList dataList) {
70 Data data = dataList.get(0);
71 DataItem[] items = data.getItems();
72
73 HLayout layout = new HLayout();
74
75 Label label = new Label(dataList.getLabel());
76 label.setWidth(200);
77 label.setHeight(20);
78
79 Label value = new Label(items[0].getLabel());
80 value.setHeight(20);
81
82 layout.addMember(label);
83 layout.addMember(value);
84 layout.addMember(getBackButton(dataList.getState()));
85
86 return layout;
87 }
88
89
90 @Override
91 public List<String> validate() {
92 List<String> errors = new ArrayList<String>();
93
94 if (!lowerForm.validate()) {
95 String msg = MSG.error_validate_range();
96 msg = msg.replace("$1", getLower());
97 msg = msg.replace("$2", String.valueOf(getMaxLower()));
98 msg = msg.replace("$3", String.valueOf(getMaxLower()));
99 errors.add(msg);
100 }
101
102 if (!upperForm.validate()) {
103 String msg = MSG.error_validate_range();
104 msg = msg.replace("$1", getUpper());
105 msg = msg.replace("$2", String.valueOf(getMaxLower()));
106 msg = msg.replace("$3", String.valueOf(getMaxUpper()));
107 errors.add(msg);
108 }
109
110 return errors;
111 }
112
113
114 @Override
115 protected Data[] getData() {
116 return new Data[0];
117 }
118
119
120 protected void initDefaults(DataList dataList) {
121 RangeData data = findRangeData(dataList);
122
123 if (data != null) {
124 setLower(String.valueOf(data.getDefaultLower()));
125 setUpper(String.valueOf(data.getDefaultUpper()));
126 }
127 }
128
129
130 protected RangeData findRangeData(DataList dataList) {
131 for (int i = 0, n = dataList.size(); i < n; i++) {
132 Data tmp = dataList.get(i);
133
134 if (tmp instanceof RangeData) {
135 return (RangeData) tmp;
136 }
137 }
138 return null;
139 }
140
141
142 protected void setDataName(DataList dataList) {
143 Data data = dataList.get(0);
144
145 this.dataName = data.getLabel();
146 }
147
148
149 public String getDataName() {
150 return dataName;
151 }
152
153
154 public String getLower() {
155 return lowerForm.getValueAsString(FIELD_LOWER);
156 }
157
158
159 public void setLower(String lower) {
160 lowerForm.setValue(FIELD_LOWER, lower);
161 }
162
163
164 public String getUpper() {
165 return upperForm.getValueAsString(FIELD_UPPER);
166 }
167
168
169 public void setUpper(String upper) {
170 upperForm.setValue(FIELD_UPPER, upper);
171 }
172
173
174 protected Canvas createLabel(DataList dataList) {
175 RangeData rangeData = findRangeData(dataList);
176
177 if (rangeData == null) {
178 return new Canvas();
179 }
180
181 Label label = new Label(rangeData.getDescription());
182
183 label.setWidth100();
184 label.setHeight(25);
185
186 return label;
187 }
188
189
190 protected Canvas createForm(DataList dataList) {
191 lowerForm = createLowerForm(dataList);
192 upperForm = createUpperForm(dataList);
193
194 HLayout formLayout = new HLayout();
195 formLayout.addMember(lowerForm);
196 formLayout.addMember(createSpacer());
197 formLayout.addMember(upperForm);
198
199 return formLayout;
200 }
201
202
203 protected DynamicForm newForm() {
204 DynamicForm form = new DynamicForm();
205 form.setTitlePrefix("");
206 form.setTitleSuffix("");
207 form.setTitle("");
208 form.setTitleField("");
209
210 return form;
211 }
212
213
214 protected FormItem newFormItem(String name) {
215 TextItem item = new TextItem(name, "");
216 item.setShowTitle(false);
217
218 return item;
219 }
220
221
222 protected DynamicForm createLowerForm(DataList dataList) {
223 DynamicForm lowerForm = newForm();
224 FormItem lower = createLowerField(dataList);
225
226 lowerForm.setFields(lower);
227
228 return lowerForm;
229 }
230
231
232 protected DynamicForm createUpperForm(DataList dataList) {
233 DynamicForm upperForm = newForm();
234 FormItem upper = createUpperField(dataList);
235
236 upperForm.setFields(upper);
237
238 return upperForm;
239 }
240
241
242 protected Canvas createSpacer() {
243 Label spacer = new Label("-");
244 spacer.setWidth(25);
245 spacer.setHeight(25);
246 spacer.setAlign(Alignment.CENTER);
247
248 return spacer;
249 }
250
251
252 protected FormItem createLowerField(DataList dataList) {
253 return createField(FIELD_LOWER, createLowerValidators(dataList));
254 }
255
256
257 protected FormItem createUpperField(DataList dataList) {
258 return createField(FIELD_UPPER, createUpperValidators(dataList));
259 }
260
261
262 protected FormItem createField(String name, Validator[] validators) {
263 FormItem field = newFormItem(name);
264
265 if (validators != null && validators.length > 0) {
266 field.setValidators(validators);
267 }
268
269 return field;
270 }
271
272
273 protected Validator[] createLowerValidators(DataList dataList) {
274 return null;
275 }
276
277
278 protected Validator[] createUpperValidators(DataList dataList) {
279 return null;
280 }
281 }
282 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org