Mercurial > dive4elements > river
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 : |