package org.limewire.ui.swing.filter; import javax.swing.JComponent; import org.limewire.ui.swing.components.Disposable; import ca.odell.glazedlists.matchers.MatcherEditor; /** * Defines a component used to filter items. */ public interface Filter<E extends FilterableItem> extends Disposable { /** * Adds the specified listener to the list that is notified when the * filter changes. */ void addFilterListener(FilterListener<E> listener); /** * Removes the specified listener from the list that is notified when the * filter changes. */ void removeFilterListener(FilterListener<E> listener); /** * Returns an indicator that determines whether the filter is in use. */ boolean isActive(); /** * Returns the display text for an active filter. */ String getActiveText(); /** * Returns the Swing component that displays the filter controls. */ JComponent getComponent(); /** * Returns the matcher/editor used to filter items. */ MatcherEditor<E> getMatcherEditor(); /** * Resets the filter. */ void reset(); }