Mercurial > dive4elements > river
view flys-client/src/main/java/de/intevation/flys/client/client/ui/RangeTableFilter.java @ 1534:98123d34529b
Added UI parts and event for filtering distances and locations.
flys-client/trunk@3749 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Mon, 23 Jan 2012 11:07:38 +0000 |
parents | |
children | 4f4d29404dba |
line wrap: on
line source
package de.intevation.flys.client.client.ui; import java.util.ArrayList; import java.util.List; import com.google.gwt.core.client.GWT; import com.smartgwt.client.widgets.form.DynamicForm; import com.smartgwt.client.widgets.form.fields.TextItem; import com.smartgwt.client.widgets.form.fields.events.ChangedEvent; import com.smartgwt.client.widgets.form.fields.events.ChangedHandler; import com.smartgwt.client.widgets.form.fields.events.KeyUpEvent; import com.smartgwt.client.widgets.form.fields.events.KeyUpHandler; import com.smartgwt.client.widgets.layout.HLayout; import de.intevation.flys.client.client.event.FilterHandler; import de.intevation.flys.client.client.event.RangeFilterEvent; import de.intevation.flys.client.client.FLYSConstants; /** * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> */ public class RangeTableFilter extends HLayout implements ChangedHandler, KeyUpHandler { /** The message class that provides i18n strings. */ protected FLYSConstants MESSAGES = GWT.create(FLYSConstants.class); protected List<FilterHandler> handlers; protected TextItem fromField; protected TextItem toField; public RangeTableFilter() { super(); fromField = new TextItem(); fromField.setTitle(MESSAGES.from()); fromField.setWidth(60); toField = new TextItem(); toField.setTitle(MESSAGES.to()); toField.setWidth(60); handlers = new ArrayList<FilterHandler>(); fromField.addChangedHandler(this); fromField.addKeyUpHandler(this); toField.addChangedHandler(this); toField.addKeyUpHandler(this); DynamicForm form = new DynamicForm(); form.setNumCols(4); form.setFields(fromField, toField); addMember(form); } public void onChanged(ChangedEvent event) { // This event handler is to slow... // fireFilterCriteriaChanged(getSearchString()); } public void onKeyUp(KeyUpEvent event) { //To deactivate "As you type" filter add // ' && event.getKeyName().equals("Enter")' // to the if-clause. if (event != null) { fireFilterCriteriaChanged(getFrom(), getTo()); } } public String getFrom() { if (fromField.getValueAsString() == null) { return ""; } else { return fromField.getValueAsString(); } } public String getTo() { if (toField.getValueAsString() == null) { return ""; } else { return toField.getValueAsString(); } } public void addFilterHandler(FilterHandler handler) { if (handler != null) { handlers.add(handler); } } protected void fireFilterCriteriaChanged(String from, String to) { RangeFilterEvent filter = new RangeFilterEvent(from, to); for (FilterHandler handler: handlers) { handler.onFilterCriteriaChanged(filter); } } public void clear() { fromField.clearValue(); toField.clearValue(); fireFilterCriteriaChanged("", ""); } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :