comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/RangeTableFilter.java @ 1536:4f4d29404dba

Filter the helper input tables using the range filter. flys-client/trunk@3754 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Tue, 24 Jan 2012 08:46:33 +0000
parents 98123d34529b
children 51ed89b754ae
comparison
equal deleted inserted replaced
1535:03e82be2aabc 1536:4f4d29404dba
1 package de.intevation.flys.client.client.ui; 1 package de.intevation.flys.client.client.ui;
2 2
3 import java.util.ArrayList; 3 import java.util.ArrayList;
4 import java.util.List; 4 import java.util.List;
5 import java.util.Map;
5 6
6 import com.google.gwt.core.client.GWT; 7 import com.google.gwt.core.client.GWT;
7 8
8 import com.smartgwt.client.widgets.form.DynamicForm; 9 import com.smartgwt.client.widgets.form.DynamicForm;
9 import com.smartgwt.client.widgets.form.fields.TextItem; 10 import com.smartgwt.client.widgets.form.fields.TextItem;
14 import com.smartgwt.client.widgets.layout.HLayout; 15 import com.smartgwt.client.widgets.layout.HLayout;
15 16
16 import de.intevation.flys.client.client.event.FilterHandler; 17 import de.intevation.flys.client.client.event.FilterHandler;
17 import de.intevation.flys.client.client.event.RangeFilterEvent; 18 import de.intevation.flys.client.client.event.RangeFilterEvent;
18 import de.intevation.flys.client.client.FLYSConstants; 19 import de.intevation.flys.client.client.FLYSConstants;
19 20 import de.intevation.flys.client.client.utils.DoubleValidator;
20 21
21 /** 22 /**
22 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> 23 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a>
23 */ 24 */
24 public class RangeTableFilter 25 public class RangeTableFilter
30 31
31 protected List<FilterHandler> handlers; 32 protected List<FilterHandler> handlers;
32 33
33 protected TextItem fromField; 34 protected TextItem fromField;
34 protected TextItem toField; 35 protected TextItem toField;
36 protected DynamicForm filterForm;
35 37
36 public RangeTableFilter() { 38 public RangeTableFilter() {
37 super(); 39 super();
38 fromField = new TextItem(); 40 fromField = new TextItem();
39 fromField.setTitle(MESSAGES.from()); 41 fromField.setTitle(MESSAGES.from());
48 fromField.addChangedHandler(this); 50 fromField.addChangedHandler(this);
49 fromField.addKeyUpHandler(this); 51 fromField.addKeyUpHandler(this);
50 toField.addChangedHandler(this); 52 toField.addChangedHandler(this);
51 toField.addKeyUpHandler(this); 53 toField.addKeyUpHandler(this);
52 54
53 DynamicForm form = new DynamicForm(); 55 filterForm = new DynamicForm();
54 form.setNumCols(4); 56 filterForm.setNumCols(4);
55 form.setFields(fromField, toField); 57 filterForm.setFields(fromField, toField);
56 58
57 addMember(form); 59 addMember(filterForm);
58 } 60 }
59 61
60 62
61 public void onChanged(ChangedEvent event) { 63 public void onChanged(ChangedEvent event) {
62 // This event handler is to slow... 64 // This event handler is to slow...
63 // fireFilterCriteriaChanged(getSearchString()); 65 // fireFilterCriteriaChanged(getSearchString());
64 } 66 }
65 67
66 68
67 public void onKeyUp(KeyUpEvent event) { 69 public void onKeyUp(KeyUpEvent event) {
70 DoubleValidator validator = new DoubleValidator();
71 Map errors = filterForm.getErrors();
72 if(event.getItem().getValue() != null &&
73 !validator.validate(event.getItem(), errors)) {
74 filterForm.setErrors(errors, true);
75 GWT.log("no valid input!");
76 return;
77 }
78 else {
79 errors.clear();
80 filterForm.setErrors(errors, true);
81 }
68 //To deactivate "As you type" filter add 82 //To deactivate "As you type" filter add
69 // ' && event.getKeyName().equals("Enter")' 83 // ' && event.getKeyName().equals("Enter")'
70 // to the if-clause. 84 // to the if-clause.
71 if (event != null) { 85 if (event != null) {
72 fireFilterCriteriaChanged(getFrom(), getTo()); 86 fireFilterCriteriaChanged(getFrom(), getTo());

http://dive4elements.wald.intevation.org