package net.techreadiness.customer.action.task.user.create;
import java.util.List;
import java.util.Map;
import javax.inject.Inject;
import net.techreadiness.navigation.taskflow.user.UserTaskFlowData;
import net.techreadiness.service.RoleService;
import net.techreadiness.service.ServiceContext;
import net.techreadiness.service.object.Role;
import net.techreadiness.ui.BaseAction;
import net.techreadiness.ui.action.filters.FilterSelectionHandler;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import com.google.common.collect.Lists;
import com.opensymphony.xwork2.ActionContext;
@Component
@Scope("prototype")
public class RoleFilterSelectionHandlerForUserCreate implements FilterSelectionHandler<Role> {
@Inject
private RoleService roleService;
@Inject
private UserTaskFlowData data;
@Override
public List<Role> getList(Map<String, Object> parameters) {
Object[] objTerm = (Object[]) parameters.get("term");
ServiceContext context = (ServiceContext) ActionContext.getContext().getSession().get(BaseAction.SERVICE_CONTEXT);
List<Role> roles = roleService.findRolesBySearchTerm(context, objTerm[0].toString());
return roles;
}
@Override
public List<Role> getSelection() {
List<Role> list = Lists.newArrayList();
if (data.getRoles().size() > 0) {
list.addAll(data.getRoles());
}
return list;
}
@Override
public void add(Long id) {
ServiceContext context = (ServiceContext) ActionContext.getContext().getSession().get(BaseAction.SERVICE_CONTEXT);
Role role = roleService.getById(context, id);
data.getRoles().add(role);
}
@Override
public void remove(Long id) {
ServiceContext context = (ServiceContext) ActionContext.getContext().getSession().get(BaseAction.SERVICE_CONTEXT);
Role role = roleService.getById(context, id);
data.getRoles().remove(role);
}
@Override
public void clear() {
data.getRoles().clear();
}
}