annotate flys-client/src/main/java/de/intevation/flys/client/client/ui/TableFilter.java @ 4198:1cdbd8a0c994

Added two new tables ClickableQDTable and ClickableWTable and made Ws and Qs clickable in historical discharge calculation. The new tables define listener interfaces (clicked lower or upper icon) to listen to user clicks. In addition to this, there is an enum ClickMode with NONE, SINGLE and RANGE options, which allows to specifiy, which icons are displayed in the tables. NONE means no icon for user clicks, SINGLE has 1 icon, RANGE 2 icons for lower and upper.
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 22 Oct 2012 13:31:25 +0200
parents 98123d34529b
children
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.form.DynamicForm;
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.form.fields.TextItem;
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.form.fields.events.ChangedEvent;
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.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
12 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
13 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
14 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
15
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
16 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
17 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
18 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
19
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
20
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
21 /**
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
22 * @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
23 */
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24 public class TableFilter
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25 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
26 implements ChangedHandler, KeyUpHandler
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
27 {
875
a77958780e1c Updated the search field style including i18n and changed the handler
Raimund Renkert <raimund.renkert@intevation.de>
parents: 871
diff changeset
28 /** 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
29 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
30
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
31 protected List<FilterHandler> handlers;
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
32
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
33 protected TextItem searchfield;
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34
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 public TableFilter() {
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37 super();
875
a77958780e1c Updated the search field style including i18n and changed the handler
Raimund Renkert <raimund.renkert@intevation.de>
parents: 871
diff changeset
38 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
39 handlers = new ArrayList<FilterHandler>();
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
41 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
42 searchfield.addKeyUpHandler(this);
1534
98123d34529b Added UI parts and event for filtering distances and locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1261
diff changeset
43 searchfield.setWidth(120);
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
45 DynamicForm form = new DynamicForm();
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
46 form.setFields(searchfield);
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 addMember(form);
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
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 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
53 // 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
54 // fireFilterCriteriaChanged(getSearchString());
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55 }
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
57
875
a77958780e1c Updated the search field style including i18n and changed the handler
Raimund Renkert <raimund.renkert@intevation.de>
parents: 871
diff changeset
58 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
59 //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
60 // ' && event.getKeyName().equals("Enter")'
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
61 // to the if-clause.
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
62 if (event != null) {
869
94d9c8353ca9 Fixed the filter function and the helper panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 863
diff changeset
63 fireFilterCriteriaChanged(getSearchString());
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
64 }
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
65 }
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 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
69 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
70 return "";
a77958780e1c Updated the search field style including i18n and changed the handler
Raimund Renkert <raimund.renkert@intevation.de>
parents: 871
diff changeset
71 }
a77958780e1c Updated the search field style including i18n and changed the handler
Raimund Renkert <raimund.renkert@intevation.de>
parents: 871
diff changeset
72 else {
a77958780e1c Updated the search field style including i18n and changed the handler
Raimund Renkert <raimund.renkert@intevation.de>
parents: 871
diff changeset
73 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
74 }
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
75 }
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
76
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 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
79 if (handler != null) {
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
80 handlers.add(handler);
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
81 }
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
82 }
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 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
86 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
87
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
88 for (FilterHandler handler: handlers) {
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
89 handler.onFilterCriteriaChanged(filter);
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
90 }
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
91 }
893
89c01218172b Clear the table filter on tab selection change and input method change.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 875
diff changeset
92
89c01218172b Clear the table filter on tab selection change and input method change.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 875
diff changeset
93
89c01218172b Clear the table filter on tab selection change and input method change.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 875
diff changeset
94 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
95 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
96 fireFilterCriteriaChanged("");
89c01218172b Clear the table filter on tab selection change and input method change.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 875
diff changeset
97 }
863
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
98 }
9bb8b7a751ec Added filter for the "description" row of helper input tables.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
99 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org