package net.techreadiness.plugin.action.org.dataentry;
import java.util.Map;
import javax.inject.Inject;
import net.techreadiness.annotation.CoreSecured;
import net.techreadiness.navigation.taskflow.org.OrgTaskFlowDefinition;
import net.techreadiness.plugin.action.org.ContactByReadyOrgItemProvider;
import net.techreadiness.plugin.action.org.ReadyOrgPartItemProvider;
import net.techreadiness.security.CorePermissionCodes;
import net.techreadiness.service.ConfigService;
import net.techreadiness.service.OrganizationService;
import net.techreadiness.service.ScopeService;
import net.techreadiness.service.common.ViewDef;
import net.techreadiness.service.exception.ServiceException;
import net.techreadiness.service.object.Contact;
import net.techreadiness.service.object.Org;
import net.techreadiness.service.object.OrgPart;
import net.techreadiness.service.object.Scope;
import net.techreadiness.ui.BaseAction;
import net.techreadiness.ui.tags.datagrid.DataGridState;
import net.techreadiness.ui.util.ConversationScoped;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
public class DetailsAction extends BaseAction {
private static final long serialVersionUID = 1L;
private Long orgId;
private Map<String, String> org;
private boolean showTaskLinks;
private boolean reset;
private ViewDef viewDef;
private ViewDef contactsViewDef;
private ViewDef orgPartViewDef;
@Inject
private ConfigService configService;
@Inject
private OrganizationService orgService;
@Inject
private ScopeService scopeService;
@Inject
ContactByReadyOrgItemProvider contactByReadyOrgItemProvider;
@Inject
ReadyOrgPartItemProvider readyOrgPartItemProvider;
@ConversationScoped
private DataGridState<Contact> contactDataGridState;
@ConversationScoped
private DataGridState<OrgPart> orgPartDataGridState;
private Scope orgPartScope;
@Inject
private OrgTaskFlowDefinition orgTaskFlow;
@Override
@CoreSecured({ CorePermissionCodes.READY_CUSTOMER_DATAENTRY_ACCESS })
@Action(value = "details", results = { @Result(name = "success", location = "/net/techreadiness/plugin/action/readyOrg/dataEntry/details.jsp") })
public String execute() throws ServiceException {
if (org == null) {
Org o = orgService.getById(getServiceContext(), getOrgId());
org = o.getAsMap();
org.put("parentOrgName", o.getParentOrgName());
}
if (reset) {
contactDataGridState.getFilters().clear();
orgPartDataGridState.getFilters().clear();
}
orgPartScope = scopeService.getScopeWithOrgParts(getServiceContext());
contactByReadyOrgItemProvider.setOrgId(getOrgId());
readyOrgPartItemProvider.setOrgId(getOrgId());
readyOrgPartItemProvider.setScopeId(getServiceContext().getScopeId());
return SUCCESS;
}
public Long getOrgId() {
return orgId;
}
public void setOrgId(Long orgId) {
this.orgId = orgId;
}
public Map<String, String> getOrg() {
return org;
}
public void setOrg(Map<String, String> org) {
this.org = org;
}
public boolean isShowTaskLinks() {
return showTaskLinks;
}
public void setShowTaskLinks(boolean showTaskLinks) {
this.showTaskLinks = showTaskLinks;
}
public ViewDef getViewDef() {
return viewDef;
}
public void setViewDef(ViewDef viewDef) {
this.viewDef = viewDef;
}
public ViewDef getContactsViewDef() {
return contactsViewDef;
}
public void setContactsViewDef(ViewDef contactsViewDef) {
this.contactsViewDef = contactsViewDef;
}
public ViewDef getOrgPartViewDef() {
return orgPartViewDef;
}
public void setOrgPartViewDef(ViewDef orgPartViewDef) {
this.orgPartViewDef = orgPartViewDef;
}
public ConfigService getConfigService() {
return configService;
}
public void setConfigService(ConfigService configService) {
this.configService = configService;
}
public OrganizationService getOrgService() {
return orgService;
}
public void setOrgService(OrganizationService orgService) {
this.orgService = orgService;
}
public ScopeService getScopeService() {
return scopeService;
}
public void setScopeService(ScopeService scopeService) {
this.scopeService = scopeService;
}
public ContactByReadyOrgItemProvider getContactByReadyOrgItemProvider() {
return contactByReadyOrgItemProvider;
}
public void setContactByReadyOrgItemProvider(ContactByReadyOrgItemProvider contactByReadyOrgItemProvider) {
this.contactByReadyOrgItemProvider = contactByReadyOrgItemProvider;
}
public ReadyOrgPartItemProvider getReadyOrgItemProvider() {
return readyOrgPartItemProvider;
}
public void setReadyOrgPartItemProvider(ReadyOrgPartItemProvider readyOrgPartItemProvider) {
this.readyOrgPartItemProvider = readyOrgPartItemProvider;
}
public DataGridState<Contact> getContactDataGridState() {
return contactDataGridState;
}
public void setContactDataGridState(DataGridState<Contact> contactDataGridState) {
this.contactDataGridState = contactDataGridState;
}
public DataGridState<OrgPart> getOrgPartDataGridState() {
return orgPartDataGridState;
}
public void setOrgPartDataGridState(DataGridState<OrgPart> orgPartDataGridState) {
this.orgPartDataGridState = orgPartDataGridState;
}
public Scope getOrgPartScope() {
return orgPartScope;
}
public OrgTaskFlowDefinition getOrgTaskFlow() {
return orgTaskFlow;
}
public void setOrgTaskFlow(OrgTaskFlowDefinition orgTaskFlow) {
this.orgTaskFlow = orgTaskFlow;
}
}