package org.limewire.ui.swing.filter; import org.limewire.collection.glazedlists.GlazedListsFactory; import org.limewire.core.api.search.SearchCategory; import org.limewire.ui.swing.filter.FilterableSource; import ca.odell.glazedlists.BasicEventList; import ca.odell.glazedlists.EventList; import ca.odell.glazedlists.FilterList; import ca.odell.glazedlists.matchers.MatcherEditor; /** * Test implementation of FilterableSource. */ public class MockFilterableSource implements FilterableSource<MockFilterableItem> { private final FilterDebugger<MockFilterableItem> filterDebugger; private final EventList<MockFilterableItem> unfilteredList; private final FilterList<MockFilterableItem> filteredList; private final SearchCategory filterCategory; public MockFilterableSource(SearchCategory searchCategory) { this.filterCategory = searchCategory; filterDebugger = new FilterDebugger<MockFilterableItem>(); unfilteredList = new BasicEventList<MockFilterableItem>(); filteredList = GlazedListsFactory.filterList(unfilteredList); } @Override public SearchCategory getFilterCategory() { return filterCategory; } @Override public FilterDebugger<MockFilterableItem> getFilterDebugger() { return filterDebugger; } @Override public EventList<MockFilterableItem> getFilteredList() { return filteredList; } @Override public EventList<MockFilterableItem> getUnfilteredList() { return unfilteredList; } @Override public void setFilterEditor(MatcherEditor<MockFilterableItem> editor) { filteredList.setMatcherEditor(editor); } /** * Adds the specified mock filterable item to the unfiltered list. */ public void addItem(MockFilterableItem mockItem) { unfilteredList.add(mockItem); } }