comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/ChartPropertiesEditor.java @ 1507:c21d14e48040

Improved validation and property handling. flys-client/trunk@3645 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Wed, 11 Jan 2012 10:21:22 +0000
parents 339f8aa641b5
children 8ac57bbc270c
comparison
equal deleted inserted replaced
1506:339f8aa641b5 1507:c21d14e48040
23 23
24 import com.smartgwt.client.widgets.events.ClickEvent; 24 import com.smartgwt.client.widgets.events.ClickEvent;
25 import com.smartgwt.client.widgets.events.ClickHandler; 25 import com.smartgwt.client.widgets.events.ClickHandler;
26 import com.smartgwt.client.widgets.form.fields.events.ChangedHandler; 26 import com.smartgwt.client.widgets.form.fields.events.ChangedHandler;
27 import com.smartgwt.client.widgets.form.fields.events.ChangedEvent; 27 import com.smartgwt.client.widgets.form.fields.events.ChangedEvent;
28 import com.smartgwt.client.widgets.form.fields.events.BlurHandler;
29 import com.smartgwt.client.widgets.form.fields.events.BlurEvent;
28 30
29 import com.smartgwt.client.types.Alignment; 31 import com.smartgwt.client.types.Alignment;
30 32
31 import de.intevation.flys.client.client.Config; 33 import de.intevation.flys.client.client.Config;
32 import de.intevation.flys.client.client.FLYSConstants; 34 import de.intevation.flys.client.client.FLYSConstants;
190 ((StringProperty)origPg.getPropertyByName("label")).getValue()); 192 ((StringProperty)origPg.getPropertyByName("label")).getValue());
191 193
192 IntegerProperty fontsize = 194 IntegerProperty fontsize =
193 (IntegerProperty)pg.getPropertyByName("font-size"); 195 (IntegerProperty)pg.getPropertyByName("font-size");
194 FormItem fs = createIntegerProperty(fontsize); 196 FormItem fs = createIntegerProperty(fontsize);
195 fs.addChangedHandler(new IntegerValidator());
196 fs.setValue( 197 fs.setValue(
197 ((IntegerProperty) 198 ((IntegerProperty)
198 origPg.getPropertyByName("font-size")).getValue()); 199 origPg.getPropertyByName("font-size")).getValue());
199 200
200 DoubleProperty upper = 201 DoubleProperty upper =
201 (DoubleProperty)pg.getPropertyByName("upper"); 202 (DoubleProperty)pg.getPropertyByName("upper");
202 final FormItem range1 = createDoubleProperty(upper); 203 final FormItem range1 = createDoubleProperty(upper);
203 range1.addChangedHandler(new DoubleValidator());
204 range1.setWidth(70); 204 range1.setWidth(70);
205 String r1Value = 205 range1.setValue(
206 ((DoubleProperty)origPg.getPropertyByName("upper")).getValue(); 206 ((DoubleProperty)
207 origPg.getPropertyByName("upper")).toUIString());
208
207 DoubleProperty lower = 209 DoubleProperty lower =
208 (DoubleProperty)pg.getPropertyByName("lower"); 210 (DoubleProperty)pg.getPropertyByName("lower");
209 final FormItem range2 = createDoubleProperty(lower); 211 final FormItem range2 = createDoubleProperty(lower);
210 range2.addChangedHandler(new DoubleValidator());
211 range2.setWidth(70); 212 range2.setWidth(70);
212 String r2Value = 213 range2.setValue(
213 ((DoubleProperty)origPg.getPropertyByName("lower")).getValue(); 214 ((DoubleProperty)
214 if(locale.equals("de")) { 215 origPg.getPropertyByName("lower")).toUIString());
215 range1.setValue(r1Value.replaceAll("\\.", ","));
216 range2.setValue(r2Value.replaceAll("\\.", ","));
217 }
218 else {
219 range1.setValue(r1Value);
220 range2.setValue(r2Value);
221 }
222 216
223 BooleanProperty fixation = 217 BooleanProperty fixation =
224 (BooleanProperty)pg.getPropertyByName("fixation"); 218 (BooleanProperty)pg.getPropertyByName("fixation");
225 FormItem fix = createBooleanProperty(fixation); 219 FormItem fix = createBooleanProperty(fixation);
226 String fixValue = 220 fix.setValue(((BooleanProperty)
227 ((BooleanProperty) 221 origPg.getPropertyByName("fixation")).getValue().booleanValue());
228 origPg.getPropertyByName("fixation")).getValue(); 222
229 if(fixValue.equals("true")) {
230 fix.setValue(true);
231 }
232 else {
233 fix.setValue(false);
234 }
235 fix.addChangedHandler(new ChangedHandler() { 223 fix.addChangedHandler(new ChangedHandler() {
236 public void onChanged(ChangedEvent e) { 224 public void onChanged(ChangedEvent e) {
237 if ((Boolean)e.getValue()) { 225 if ((Boolean)e.getValue()) {
238 range1.enable(); 226 range1.enable();
239 range2.enable(); 227 range2.enable();
242 range1.disable(); 230 range1.disable();
243 range2.disable(); 231 range2.disable();
244 } 232 }
245 } 233 }
246 }); 234 });
247 if (fixation.getValue().equals("true")) { 235 if (fix.getValue().toString().equals("true")) {
248 range1.enable(); 236 range1.enable();
249 range2.enable(); 237 range2.enable();
250 } 238 }
251 else { 239 else {
252 range1.disable(); 240 range1.disable();
283 PropertySetting s = (PropertySetting)setting; 271 PropertySetting s = (PropertySetting)setting;
284 DynamicForm form = new DynamicForm(); 272 DynamicForm form = new DynamicForm();
285 FormItem item = new FormItem(); 273 FormItem item = new FormItem();
286 if (setting instanceof BooleanProperty) { 274 if (setting instanceof BooleanProperty) {
287 item = createBooleanProperty((BooleanProperty)setting); 275 item = createBooleanProperty((BooleanProperty)setting);
288 String iValue = ((BooleanProperty)orig).getValue(); 276 item.setValue(((BooleanProperty)orig).getValue().toString());
289 if(iValue.equals("true")) {
290 item.setValue(true);
291 }
292 else {
293 item.setValue(false);
294 }
295 } 277 }
296 else if (setting instanceof DoubleProperty) { 278 else if (setting instanceof DoubleProperty) {
297 item = createDoubleProperty((DoubleProperty)setting); 279 item = createDoubleProperty((DoubleProperty)setting);
298 DoubleValidator validator = new DoubleValidator(); 280 item.setValue(((DoubleProperty)orig).toUIString());
299 item.addChangedHandler(validator);
300 Config config = Config.getInstance();
301 String locale = config.getLocale();
302 String iValue = ((DoubleProperty)orig).getValue();
303 if(locale.equals("de")) {
304 item.setValue(iValue.replaceAll("\\.", ","));
305 }
306 else {
307 item.setValue(iValue);
308 }
309 } 281 }
310 else if (setting instanceof IntegerProperty) { 282 else if (setting instanceof IntegerProperty) {
311 item = createIntegerProperty((IntegerProperty)setting); 283 item = createIntegerProperty((IntegerProperty)setting);
312 item.addChangedHandler(new IntegerValidator());
313 item.setValue(((IntegerProperty)orig).getValue()); 284 item.setValue(((IntegerProperty)orig).getValue());
314 } 285 }
315 else if (setting instanceof StringProperty) { 286 else if (setting instanceof StringProperty) {
316 item = createStringProperty((StringProperty)setting); 287 item = createStringProperty((StringProperty)setting);
317 item.setValue(((StringProperty)orig).getValue()); 288 item.setValue(((StringProperty)orig).getValue());
330 name = name.replace("-", "_"); 301 name = name.replace("-", "_");
331 } 302 }
332 TextItem item = new TextItem(); 303 TextItem item = new TextItem();
333 item.setTitle(MSG.getString(name)); 304 item.setTitle(MSG.getString(name));
334 item.setTitleAlign(Alignment.LEFT); 305 item.setTitleAlign(Alignment.LEFT);
335 item.addChangedHandler(new ChangedHandler() { 306 item.addBlurHandler(new BlurHandler() {
336 public void onChanged(ChangedEvent e) { 307 public void onBlur(BlurEvent e) {
337 String val; 308 String val;
338 if (e.getValue() == null) { 309 if (e.getItem().getValue() == null) {
339 val = ""; 310 val = "";
340 } 311 }
341 else { 312 else {
342 val = e.getValue().toString(); 313 val = e.getItem().getValue().toString();
343 } 314 }
344 sp.setValue(val); 315 sp.setValue(val);
345 } 316 }
346 }); 317 });
347 return item; 318 return item;
359 330
360 CheckboxItem item = new CheckboxItem("item", MSG.getString(name)); 331 CheckboxItem item = new CheckboxItem("item", MSG.getString(name));
361 item.setLabelAsTitle(true); 332 item.setLabelAsTitle(true);
362 item.setTitleStyle("color:#000;"); 333 item.setTitleStyle("color:#000;");
363 item.setTitleAlign(Alignment.LEFT); 334 item.setTitleAlign(Alignment.LEFT);
364 item.addChangedHandler(new ChangedHandler() { 335 item.addBlurHandler(new BlurHandler() {
365 public void onChanged(ChangedEvent e) { 336 public void onBlur(BlurEvent e) {
366 String val; 337 String val;
367 if (e.getValue() == null) { 338 if (e.getItem().getValue() == null) {
368 val = ""; 339 val = "";
369 } 340 }
370 else { 341 else {
371 val = e.getValue().toString(); 342 val = e.getItem().getValue().toString();
372 } 343 }
373 bp.setValue(val); 344 bp.setValue(val);
374 } 345 }
375 }); 346 });
376 return item; 347 return item;
387 } 358 }
388 359
389 TextItem item = new TextItem(); 360 TextItem item = new TextItem();
390 item.setTitle(MSG.getString(name)); 361 item.setTitle(MSG.getString(name));
391 item.setTitleAlign(Alignment.LEFT); 362 item.setTitleAlign(Alignment.LEFT);
392 item.addChangedHandler(new ChangedHandler() { 363 item.addBlurHandler(new BlurHandler() {
393 public void onChanged(ChangedEvent e) { 364 public void onBlur(BlurEvent e) {
394 String val; 365 DoubleValidator validator = new DoubleValidator();
395 if (e.getValue() == null) { 366 Map errors = e.getForm().getErrors();
396 val = ""; 367 if(validator.validate(e.getItem(), errors)) {
397 } 368 dp.setValueFromUI(e.getItem().getValue().toString());
398 else { 369 e.getForm().setErrors(errors, true);
399 val = e.getValue().toString(); 370 }
400 } 371 else {
401 DoubleValidator validator = new DoubleValidator(); 372 e.getForm().setErrors(errors, true);
402 373 }
403 Map errors = e.getForm().getErrors();
404 String input = validator.toProtocolString(e.getItem(), errors);
405 if(input != null) {
406 dp.setValue(input);
407 }
408 } 374 }
409 }); 375 });
410 return item; 376 return item;
411 } 377 }
412 378
421 } 387 }
422 388
423 TextItem item = new TextItem(); 389 TextItem item = new TextItem();
424 item.setTitle(MSG.getString(name)); 390 item.setTitle(MSG.getString(name));
425 item.setTitleAlign(Alignment.LEFT); 391 item.setTitleAlign(Alignment.LEFT);
426 item.addChangedHandler(new ChangedHandler() { 392 item.addBlurHandler(new BlurHandler() {
427 public void onChanged(ChangedEvent e) { 393 public void onBlur(BlurEvent e) {
428 String val; 394 IntegerValidator validator = new IntegerValidator();
429 if (e.getValue() == null) { 395 Map errors = e.getForm().getErrors();
430 val = ""; 396 if(validator.validate(e.getItem(), errors)) {
397 ip.setValue(e.getItem().getValue().toString());
398 e.getForm().setErrors(errors, true);
431 } 399 }
432 else { 400 else {
433 val = e.getValue().toString(); 401 e.getForm().setErrors(errors, true);
434 } 402 }
435 ip.setValue(val);
436 } 403 }
437 }); 404 });
438 return item; 405 return item;
439 } 406 }
440 407

http://dive4elements.wald.intevation.org