package net.techreadiness.customer.action.task.org.part; import static net.techreadiness.security.CorePermissionCodes.CORE_CUSTOMER_ORG_PART_UPDATE; import java.util.Map; import javax.inject.Inject; import net.techreadiness.annotation.CoreSecured; import net.techreadiness.customer.datagrid.OrgPartTaskItemProvider; import net.techreadiness.service.ConfigService; import net.techreadiness.service.ScopeService; import net.techreadiness.service.common.ViewDef; import net.techreadiness.service.common.ViewDef.ViewDefTypeCode; import net.techreadiness.ui.action.task.org.OrgTaskFlowAction; import net.techreadiness.ui.tags.taskview.TaskViewState; import net.techreadiness.ui.util.ConversationScoped; import net.techreadiness.util.MapUtils; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Result; import com.opensymphony.xwork2.Preparable; import com.opensymphony.xwork2.util.Element; public class EditAction extends OrgTaskFlowAction implements Preparable { private static final long serialVersionUID = 1L; private ViewDef viewDef; private ViewDef detailsViewDef; @Inject private ConfigService configService; @Inject private OrgPartTaskItemProvider orgPartTaskItemProvider; @Inject private ScopeService scopeService; @Element(String.class) private Map<String, Map<String, String>> participations; @ConversationScoped(value = "participationsDataGrid") TaskViewState<?> participationsDataGrid; @CoreSecured({ CORE_CUSTOMER_ORG_PART_UPDATE }) @Override @Action(results = { @Result(name = "success", location = "/task/org/participations.jsp"), @Result(name = "noorg", location = "/task/org/noorg.jsp") }) public String execute() { if (getTaskFlowData().getOrgs() == null || getTaskFlowData().getOrgs().isEmpty()) { return "noorg"; } setViewDef(configService.getViewDefinition(getServiceContext(), ViewDef.ViewDefTypeCode.ORG_PART_DATAGRID)); orgPartTaskItemProvider.setScope(scopeService.getById(getServiceContext(), getServiceContext().getScopeId())); orgPartTaskItemProvider.setOrgs(getTaskFlowData().getOrgs()); detailsViewDef = configService.getViewDefinition(getServiceContext(), ViewDefTypeCode.ORG_PART); return SUCCESS; } @Override public void prepare() throws Exception { participations = MapUtils.makeComputingMap(); } public Map<String, Map<String, String>> getParticipations() { return participations; } public void setParticipations(Map<String, Map<String, String>> participations) { this.participations = participations; } public void setViewDef(ViewDef viewDef) { this.viewDef = viewDef; } public ViewDef getViewDef() { return viewDef; } public OrgPartTaskItemProvider getOrgPartTaskItemProvider() { return orgPartTaskItemProvider; } public TaskViewState<?> getParticipationsDataGrid() { return participationsDataGrid; } public ViewDef getDetailsViewDef() { return detailsViewDef; } public void setDetailsViewDef(ViewDef detailsViewDef) { this.detailsViewDef = detailsViewDef; } }