package net.techreadiness.plugin.action.device;
import javax.inject.Inject;
import net.techreadiness.annotation.CoreSecured;
import net.techreadiness.plugin.action.task.device.DeviceTaskFlowDefinition;
import net.techreadiness.security.CorePermissionCodes;
import net.techreadiness.service.ConfigService;
import net.techreadiness.service.OrganizationService;
import net.techreadiness.service.common.ViewDef;
import net.techreadiness.service.object.Device;
import net.techreadiness.ui.tags.datagrid.DataGridState;
import net.techreadiness.ui.task.BaseTaskControlAction;
import net.techreadiness.ui.util.Conversation;
import net.techreadiness.ui.util.ConversationAware;
import net.techreadiness.ui.util.ConversationScoped;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
@Results({ @Result(name = "success", location = "/net/techreadiness/plugin/action/device/list.jsp") })
public class ListAction extends BaseTaskControlAction<DeviceTaskFlowDefinition> implements ConversationAware {
private static final long serialVersionUID = 1L;
@Inject
private DeviceByOrgItemProvider deviceItemProvider;
@Inject
private ConfigService configService;
@Inject
private OrganizationService organizationService;
@ConversationScoped(value = "deviceSearchGrid")
private DataGridState<Device> deviceSearchGrid;
private ViewDef viewDefinition;
private Conversation conversation;
@Override
@CoreSecured({ CorePermissionCodes.READY_CUSTOMER_READINESS_ACCESS })
public String execute() {
if (getServiceContext().getOrg().getParentOrgId() == null) {
deviceItemProvider.setDoNotDisplayText(getText("ready.device.root.org.nodisplay"));
} else {
deviceItemProvider.setDoNotDisplayText("");
}
deviceItemProvider.setOrg(organizationService.getById(getServiceContext(), getServiceContext().getOrgId()));
viewDefinition = configService.getViewDefinition(getServiceContext(), ViewDef.ViewDefTypeCode.DEVICE_DATAGRID);
conversation.put("orgFilterSelectionHandler", "orgSelectionFilterForDeviceList");
return "success";
}
public DataGridState<Device> getDeviceSearchGrid() {
return deviceSearchGrid;
}
public DeviceByOrgItemProvider getDeviceItemProvider() {
return deviceItemProvider;
}
public ViewDef getViewDefinition() {
return viewDefinition;
}
@Override
public void setConversation(Conversation conversation) {
this.conversation = conversation;
}
}