annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/TableFilter.java @ 893:89c01218172b

Clear the table filter on tab selection change and input method change. (Issue305) flys-client/trunk@2738 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Wed, 14 Sep 2011 10:11:50 +0000
parents a77958780e1c
children b48c36076e17
rev   line source
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.client.ui;
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
2
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
3 import java.util.ArrayList;
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
4 import java.util.List;
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
5
875
a77958780e1c Updated the search field style including i18n and changed the handler
Raimund Renkert <raimund.renkert@intevation.de>
parents: 871
diff changeset
6 import com.google.gwt.core.client.GWT;
a77958780e1c Updated the search field style including i18n and changed the handler
Raimund Renkert <raimund.renkert@intevation.de>
parents: 871
diff changeset
7
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
8 import com.smartgwt.client.widgets.IButton;
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
9 import com.smartgwt.client.widgets.events.ClickEvent;
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10 import com.smartgwt.client.widgets.events.ClickHandler;
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
11 import com.smartgwt.client.widgets.form.DynamicForm;
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
12 import com.smartgwt.client.widgets.form.fields.TextItem;
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
13 import com.smartgwt.client.widgets.form.fields.events.ChangedEvent;
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
14 import com.smartgwt.client.widgets.form.fields.events.ChangedHandler;
875
a77958780e1c Updated the search field style including i18n and changed the handler
Raimund Renkert <raimund.renkert@intevation.de>
parents: 871
diff changeset
15 import com.smartgwt.client.widgets.form.fields.events.KeyUpEvent;
a77958780e1c Updated the search field style including i18n and changed the handler
Raimund Renkert <raimund.renkert@intevation.de>
parents: 871
diff changeset
16 import com.smartgwt.client.widgets.form.fields.events.KeyUpHandler;
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
17 import com.smartgwt.client.widgets.layout.HLayout;
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
18
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
19 import de.intevation.flys.client.client.event.FilterHandler;
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
20 import de.intevation.flys.client.client.event.StringFilterEvent;
875
a77958780e1c Updated the search field style including i18n and changed the handler
Raimund Renkert <raimund.renkert@intevation.de>
parents: 871
diff changeset
21 import de.intevation.flys.client.client.FLYSConstants;
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
22
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
23
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24 /**
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26 */
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
27 public class TableFilter
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
28 extends HLayout
875
a77958780e1c Updated the search field style including i18n and changed the handler
Raimund Renkert <raimund.renkert@intevation.de>
parents: 871
diff changeset
29 implements ChangedHandler, KeyUpHandler
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
30 {
875
a77958780e1c Updated the search field style including i18n and changed the handler
Raimund Renkert <raimund.renkert@intevation.de>
parents: 871
diff changeset
31 /** The message class that provides i18n strings. */
a77958780e1c Updated the search field style including i18n and changed the handler
Raimund Renkert <raimund.renkert@intevation.de>
parents: 871
diff changeset
32 protected FLYSConstants MESSAGES = GWT.create(FLYSConstants.class);
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
33
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34 protected List<FilterHandler> handlers;
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
35
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36 protected TextItem searchfield;
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
39 public TableFilter() {
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40 super();
875
a77958780e1c Updated the search field style including i18n and changed the handler
Raimund Renkert <raimund.renkert@intevation.de>
parents: 871
diff changeset
41 searchfield = new TextItem(MESSAGES.search());
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
42 handlers = new ArrayList<FilterHandler>();
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
43
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44 searchfield.addChangedHandler(this);
875
a77958780e1c Updated the search field style including i18n and changed the handler
Raimund Renkert <raimund.renkert@intevation.de>
parents: 871
diff changeset
45 searchfield.addKeyUpHandler(this);
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
46
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47 DynamicForm form = new DynamicForm();
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 form.setFields(searchfield);
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
50 addMember(form);
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
51 }
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
52
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
53
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
54 public void onChanged(ChangedEvent event) {
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55 // This event handler is to slow...
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56 // fireFilterCriteriaChanged(getSearchString());
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
57 }
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
58
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
59
875
a77958780e1c Updated the search field style including i18n and changed the handler
Raimund Renkert <raimund.renkert@intevation.de>
parents: 871
diff changeset
60 public void onKeyUp(KeyUpEvent event) {
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
61 //To deactivate "As you type" filter add
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
62 // ' && event.getKeyName().equals("Enter")'
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
63 // to the if-clause.
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
64 if (event != null) {
869
94d9c8353ca9 Fixed the filter function and the helper panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 863
diff changeset
65 fireFilterCriteriaChanged(getSearchString());
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
66 }
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
67 }
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
68
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
69
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
70 public String getSearchString() {
875
a77958780e1c Updated the search field style including i18n and changed the handler
Raimund Renkert <raimund.renkert@intevation.de>
parents: 871
diff changeset
71 if (searchfield.getValueAsString() == null) {
a77958780e1c Updated the search field style including i18n and changed the handler
Raimund Renkert <raimund.renkert@intevation.de>
parents: 871
diff changeset
72 return "";
a77958780e1c Updated the search field style including i18n and changed the handler
Raimund Renkert <raimund.renkert@intevation.de>
parents: 871
diff changeset
73 }
a77958780e1c Updated the search field style including i18n and changed the handler
Raimund Renkert <raimund.renkert@intevation.de>
parents: 871
diff changeset
74 else {
a77958780e1c Updated the search field style including i18n and changed the handler
Raimund Renkert <raimund.renkert@intevation.de>
parents: 871
diff changeset
75 return searchfield.getValueAsString();
a77958780e1c Updated the search field style including i18n and changed the handler
Raimund Renkert <raimund.renkert@intevation.de>
parents: 871
diff changeset
76 }
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
77 }
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
78
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
79
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
80 public void addFilterHandler(FilterHandler handler) {
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
81 if (handler != null) {
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
82 handlers.add(handler);
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
83 }
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
84 }
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
85
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
86
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
87 protected void fireFilterCriteriaChanged(String searchstring) {
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
88 StringFilterEvent filter = new StringFilterEvent(searchstring);
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
89
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
90 for (FilterHandler handler: handlers) {
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
91 handler.onFilterCriteriaChanged(filter);
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
92 }
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
93 }
893
89c01218172b Clear the table filter on tab selection change and input method change.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 875
diff changeset
94
89c01218172b Clear the table filter on tab selection change and input method change.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 875
diff changeset
95
89c01218172b Clear the table filter on tab selection change and input method change.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 875
diff changeset
96 public void clear() {
89c01218172b Clear the table filter on tab selection change and input method change.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 875
diff changeset
97 searchfield.clearValue();
89c01218172b Clear the table filter on tab selection change and input method change.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 875
diff changeset
98 fireFilterCriteriaChanged("");
89c01218172b Clear the table filter on tab selection change and input method change.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 875
diff changeset
99 }
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
100 }
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
101 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org