package net.techreadiness.plugin.action.device; import java.util.Collection; import java.util.List; import java.util.Map; import javax.inject.Inject; import net.techreadiness.service.OrganizationService; import net.techreadiness.service.object.Org; import net.techreadiness.ui.action.filters.AbstractConversationFilterSelectionHandler; import org.springframework.stereotype.Component; import com.google.common.collect.Lists; @Component @org.springframework.context.annotation.Scope("prototype") public class OrgSelectionFilterForDeviceList extends AbstractConversationFilterSelectionHandler<Org> { static final String FILTER_NAME = "org"; static final String DATA_GRID_ID = "deviceSearchGrid"; @Inject private OrganizationService orgService; @Override public List<Org> getList(Map<String, Object> parameters) { String[] term = (String[]) parameters.get("term"); return orgService.findOrgsBySearchTerm(getServiceContext(), term[0], 50); } @Override public List<Org> getSelection() { Collection<Long> orgIds = Lists.newArrayList(); for (String orgId : getDataGridState(DATA_GRID_ID).getFilters().get(FILTER_NAME)) { orgIds.add(Long.valueOf(orgId)); } return orgService.findByIds(getServiceContext(), orgIds); } @Override public void add(Long id) { getDataGridState(DATA_GRID_ID).getFilters().get(FILTER_NAME).add(id.toString()); } @Override public void remove(Long id) { getDataGridState(DATA_GRID_ID).getFilters().remove(FILTER_NAME, id.toString()); } @Override public void clear() { getDataGridState(DATA_GRID_ID).getFilters().get(FILTER_NAME).clear(); } }