Mercurial > dive4elements > river
annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/TableFilter.java @ 875:a77958780e1c
Updated the search field style including i18n and changed the handler
implementation of TableFilter.
flys-client/trunk@2702 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Mon, 12 Sep 2011 11:47:42 +0000 |
parents | d08cf5ed1bfc |
children | 89c01218172b |
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 } |
9bb8b7a751ec
Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
94 } |
9bb8b7a751ec
Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
95 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |