package net.techreadiness.customer.action.task.user.create;
import java.util.Map;
import javax.inject.Inject;
import net.techreadiness.service.UserService;
import net.techreadiness.service.object.Org;
import net.techreadiness.service.object.Role;
import net.techreadiness.ui.action.filters.FilterSelectionHandler;
import net.techreadiness.ui.action.task.user.UserTaskFlowAction;
import net.techreadiness.ui.util.ConversationAware;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import com.google.common.collect.Maps;
import com.opensymphony.xwork2.Preparable;
public class BaseUserAction extends UserTaskFlowAction implements Preparable, ApplicationContextAware {
private static final long serialVersionUID = 1L;
protected Map<String, String> userMap = null;
@Inject
protected UserService userService;
private ApplicationContext applicationContext;
@Override
public void prepare() throws Exception {
if (userMap == null) {
userMap = Maps.newHashMap();
}
}
public Map<String, String> getUserMap() {
return userMap;
}
public void setUserMap(Map<String, String> userMap) {
this.userMap = userMap;
}
protected FilterSelectionHandler<Role> getRoleSelectionHandler() {
String beanName = conversation.get(String.class, "roleFilterSelectionHandler");
FilterSelectionHandler<Role> selectionHandler = applicationContext.getBean(beanName, FilterSelectionHandler.class);
if (selectionHandler instanceof ConversationAware) {
((ConversationAware) selectionHandler).setConversation(conversation);
}
return selectionHandler;
}
protected FilterSelectionHandler<Org> getOrgSelectionHandler() {
String beanName = conversation.get(String.class, "orgFilterSelectionHandler");
FilterSelectionHandler<Org> selectionHandler = applicationContext.getBean(beanName, FilterSelectionHandler.class);
if (selectionHandler instanceof ConversationAware) {
((ConversationAware) selectionHandler).setConversation(conversation);
}
return selectionHandler;
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
}