package net.techreadiness.ui.action.filters; import java.util.Collection; import java.util.List; import net.techreadiness.ui.tags.datagrid.FilterMap; import com.google.common.collect.Lists; public abstract class AbstractDataGridFilterSelectionHandler<T> extends AbstractConversationFilterSelectionHandler<T> { public abstract String getDataGridName(); public abstract String getFilterName(); public abstract List<T> getSelection(List<Long> filterValues); @Override public List<T> getSelection() { Collection<String> strings = getFilters().get(getFilterName()); List<Long> orgIds = Lists.newArrayList(); for (String string : strings) { orgIds.add(Long.valueOf(string)); } return getSelection(orgIds); } @Override public void add(Long id) { getFilters().put(getFilterName(), id.toString()); } @Override public void remove(Long id) { getFilters().remove(getFilterName(), id.toString()); } @Override public void clear() { getFilters().get(getFilterName()).clear(); } private FilterMap getFilters() { return getDataGridState(getDataGridName()).getFilters(); } public Collection<String> getFilterValues() { return getDataGridState(getDataGridName()).getFilters().get(getFilterName()); } }