package net.techreadiness.plugin.action.task.survey.network;
import java.util.Map;
import javax.inject.Inject;
import net.techreadiness.annotation.CoreSecured;
import net.techreadiness.plugin.datagrid.OrgNetworkItemProvider;
import net.techreadiness.security.CorePermissionCodes;
import net.techreadiness.service.ConfigService;
import net.techreadiness.service.common.ViewDef;
import net.techreadiness.service.object.Org;
import net.techreadiness.ui.action.task.org.survey.SurveyQuestionsTaskFlowAction;
import net.techreadiness.ui.tags.datagrid.DataGridState;
import net.techreadiness.ui.util.ConversationScoped;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import com.google.common.collect.Maps;
import com.opensymphony.xwork2.Preparable;
import com.opensymphony.xwork2.util.Element;
import com.opensymphony.xwork2.util.Key;
@Results({ @Result(name = "success", location = "/net/techreadiness/plugin/action/org/survey/network.jsp"),
@Result(name = "noorg", location = "/net/techreadiness/plugin/action/org/survey/noorg.jsp") })
public class NetworkAction extends SurveyQuestionsTaskFlowAction implements Preparable {
private static final long serialVersionUID = 1L;
@Inject
private OrgNetworkItemProvider orgNetworkItemProvider;
@Inject
private ConfigService configService;
@ConversationScoped
private DataGridState<Org> orgNetworkGrid;
private ViewDef viewDef;
@Key(Long.class)
@Element(Org.class)
private Map<Long, Org> orgs;
@CoreSecured({ CorePermissionCodes.READY_CUSTOMER_NETWORK_INFRASTRUCTURE })
@Override
public String execute() {
viewDef = configService.getViewDefinition(getServiceContext(), ViewDef.ViewDefTypeCode.ORG_NETWORK_TASK);
orgNetworkItemProvider.setOrgs(getTaskFlowData().getOrgs());
return SUCCESS;
}
public DataGridState<Org> getOrgNetworkGrid() {
return orgNetworkGrid;
}
public OrgNetworkItemProvider getOrgNetworkItemProvider() {
return orgNetworkItemProvider;
}
public Map<Long, Org> getOrgs() {
return orgs;
}
public void setOrgs(Map<Long, Org> orgs) {
this.orgs = orgs;
}
@Override
public void prepare() throws Exception {
orgs = Maps.newHashMap();
}
public ViewDef getViewDef() {
return viewDef;
}
public void setViewDef(ViewDef viewDef) {
this.viewDef = viewDef;
}
}