package net.techreadiness.plugin.action.task.device.edit; import java.util.HashMap; import java.util.Map; import javax.inject.Inject; import net.techreadiness.annotation.CoreSecured; import net.techreadiness.plugin.action.device.BaseDeviceTaskAction; import net.techreadiness.plugin.action.device.DeviceItemProvider; import net.techreadiness.security.CorePermissionCodes; import net.techreadiness.service.ConfigService; import net.techreadiness.service.common.ViewDef; import net.techreadiness.service.object.Device; import net.techreadiness.ui.tags.taskview.TaskViewState; import net.techreadiness.ui.util.ConversationScoped; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.Preparable; import com.opensymphony.xwork2.util.Element; import com.opensymphony.xwork2.util.Key; @Results({ @Result(name = Action.SUCCESS, location = "/net/techreadiness/plugin/action/device/edit.jsp"), @Result(name = "nodevice", location = "/net/techreadiness/plugin/action/device/nodevice.jsp") }) public class EditAction extends BaseDeviceTaskAction implements Preparable { private static final long serialVersionUID = 1L; private ViewDef viewDef; private ViewDef detailsViewDef; @Key(Long.class) @Element(Device.class) private Map<Long, Device> devices; @Inject private DeviceItemProvider deviceItemProvider; @Inject private ConfigService configService; @ConversationScoped(value = "deviceEditGrid") private TaskViewState<?> deviceEditGrid; @Override @CoreSecured({ CorePermissionCodes.READY_CUSTOMER_DEVICE_UPDATE }) public String execute() { deviceItemProvider.setDevices(getTaskFlowData().getDevices()); viewDef = configService.getViewDefinition(getServiceContext(), ViewDef.ViewDefTypeCode.DEVICE_DATAGRID); detailsViewDef = configService.getViewDefinition(getServiceContext(), ViewDef.ViewDefTypeCode.DEVICE); return SUCCESS; } @Override public void prepare() throws Exception { devices = new HashMap<>(); } public TaskViewState<?> getDeviceEditGrid() { return deviceEditGrid; } public DeviceItemProvider getDeviceItemProvider() { return deviceItemProvider; } public Map<Long, Device> getDevices() { return devices; } public void setViewDef(ViewDef viewDef) { this.viewDef = viewDef; } public ViewDef getViewDef() { return viewDef; } public void setDetailsViewDef(ViewDef detailsViewDef) { this.detailsViewDef = detailsViewDef; } public ViewDef getDetailsViewDef() { return detailsViewDef; } }