comparison flys-client/src/main/java/org/dive4elements/river/client/client/ui/TableFilter.java @ 5834:f507086aa94b

Repaired internal references.
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 12:31:32 +0200
parents flys-client/src/main/java/de/intevation/flys/client/client/ui/TableFilter.java@98123d34529b
children 821a02bbfb4e
comparison
equal deleted inserted replaced
5833:a2bdc0f524e8 5834:f507086aa94b
1 package de.intevation.flys.client.client.ui;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import com.google.gwt.core.client.GWT;
7
8 import com.smartgwt.client.widgets.form.DynamicForm;
9 import com.smartgwt.client.widgets.form.fields.TextItem;
10 import com.smartgwt.client.widgets.form.fields.events.ChangedEvent;
11 import com.smartgwt.client.widgets.form.fields.events.ChangedHandler;
12 import com.smartgwt.client.widgets.form.fields.events.KeyUpEvent;
13 import com.smartgwt.client.widgets.form.fields.events.KeyUpHandler;
14 import com.smartgwt.client.widgets.layout.HLayout;
15
16 import de.intevation.flys.client.client.event.FilterHandler;
17 import de.intevation.flys.client.client.event.StringFilterEvent;
18 import de.intevation.flys.client.client.FLYSConstants;
19
20
21 /**
22 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
23 */
24 public class TableFilter
25 extends HLayout
26 implements ChangedHandler, KeyUpHandler
27 {
28 /** The message class that provides i18n strings. */
29 protected FLYSConstants MESSAGES = GWT.create(FLYSConstants.class);
30
31 protected List<FilterHandler> handlers;
32
33 protected TextItem searchfield;
34
35
36 public TableFilter() {
37 super();
38 searchfield = new TextItem(MESSAGES.search());
39 handlers = new ArrayList<FilterHandler>();
40
41 searchfield.addChangedHandler(this);
42 searchfield.addKeyUpHandler(this);
43 searchfield.setWidth(120);
44
45 DynamicForm form = new DynamicForm();
46 form.setFields(searchfield);
47
48 addMember(form);
49 }
50
51
52 public void onChanged(ChangedEvent event) {
53 // This event handler is to slow...
54 // fireFilterCriteriaChanged(getSearchString());
55 }
56
57
58 public void onKeyUp(KeyUpEvent event) {
59 //To deactivate "As you type" filter add
60 // ' && event.getKeyName().equals("Enter")'
61 // to the if-clause.
62 if (event != null) {
63 fireFilterCriteriaChanged(getSearchString());
64 }
65 }
66
67
68 public String getSearchString() {
69 if (searchfield.getValueAsString() == null) {
70 return "";
71 }
72 else {
73 return searchfield.getValueAsString();
74 }
75 }
76
77
78 public void addFilterHandler(FilterHandler handler) {
79 if (handler != null) {
80 handlers.add(handler);
81 }
82 }
83
84
85 protected void fireFilterCriteriaChanged(String searchstring) {
86 StringFilterEvent filter = new StringFilterEvent(searchstring);
87
88 for (FilterHandler handler: handlers) {
89 handler.onFilterCriteriaChanged(filter);
90 }
91 }
92
93
94 public void clear() {
95 searchfield.clearValue();
96 fireFilterCriteriaChanged("");
97 }
98 }
99 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org