view flys-client/src/main/java/de/intevation/flys/client/client/ui/TableFilter.java @ 871:d08cf5ed1bfc

Removed needless imports. flys-client/trunk@2692 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 12 Sep 2011 04:54:35 +0000
parents 94d9c8353ca9
children a77958780e1c
line wrap: on
line source
package de.intevation.flys.client.client.ui;

import java.util.ArrayList;
import java.util.List;

import com.smartgwt.client.widgets.IButton;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
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.KeyPressEvent;
import com.smartgwt.client.widgets.form.fields.events.KeyPressHandler;
import com.smartgwt.client.widgets.layout.HLayout;

import de.intevation.flys.client.client.event.FilterHandler;
import de.intevation.flys.client.client.event.StringFilterEvent;


/**
 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
 */
public class TableFilter
extends      HLayout
implements   ChangedHandler, ClickHandler, KeyPressHandler
{
    public static final String SEARCH_FIELD = "searchfield";


    protected List<FilterHandler> handlers;

    protected TextItem searchfield;


    public TableFilter() {
        super();
        searchfield = new TextItem(SEARCH_FIELD);
        handlers    = new ArrayList<FilterHandler>();

        searchfield.addChangedHandler(this);
        searchfield.addKeyPressHandler(this);

        DynamicForm form = new DynamicForm();
        form.setFields(searchfield);

        IButton clear = new IButton("Clear");
        clear.addClickHandler(this);

        addMember(form);
        addMember(clear);
    }


    public void onChanged(ChangedEvent event) {
        // This event handler is to slow...
//        fireFilterCriteriaChanged(getSearchString());
    }


    public void onKeyPress(KeyPressEvent event) {
        //To deactivate "As you type" filter add
        // ' && event.getKeyName().equals("Enter")'
        // to the if-clause.
        if (event != null) {
            fireFilterCriteriaChanged(getSearchString());
        }
    }


    public void onClick(ClickEvent event) {
        searchfield.setValue("");
        fireFilterCriteriaChanged("");
    }


    public void clearSearch() {
        searchfield.setValue("");
    }


    public String getSearchString() {
        return searchfield.getValueAsString();
    }


    public void addFilterHandler(FilterHandler handler) {
        if (handler != null) {
            handlers.add(handler);
        }
    }


    protected void fireFilterCriteriaChanged(String searchstring) {
        StringFilterEvent filter = new StringFilterEvent(searchstring);

        for (FilterHandler handler: handlers) {
            handler.onFilterCriteriaChanged(filter);
        }
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org