package net.techreadiness.plugin.action.task.snapshot; import java.util.List; import net.techreadiness.plugin.service.object.SnapshotWindow; import net.techreadiness.service.exception.ServiceException; import net.techreadiness.ui.tags.datagrid.DataGridState; import net.techreadiness.ui.task.BaseTaskFlowAction; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Result; public class SnapshotTaskFlowAction extends BaseTaskFlowAction<SnapshotTaskFlowData, SnapshotTaskFlowDefinition> { private static final long serialVersionUID = 1L; @Action(value = "snapshotTaskFlowBegin", results = { @Result(name = "success", type = "redirectAction", params = { "actionName", "${taskFlowData.taskFlowState.currentTask.action}", "namespace", "${taskFlowData.taskFlowState.currentTask.namespace}" }) }) public String beginTaskFlow() throws ServiceException { startNewTaskFlow(); DataGridState<SnapshotWindow> dataGridState = conversation.get(DataGridState.class, "snapshotSearchGrid"); getTaskFlowData().setSnapshots(dataGridState.getSelectedItems()); return SUCCESS; } @Override public String endTaskFlow() throws ServiceException { if (getTaskFlowData().isStandardInvocation()) { DataGridState<SnapshotWindow> dataGridState = conversation.get(DataGridState.class, "snapshotSearchGrid"); List<SnapshotWindow> selectedSnapshots = dataGridState.getSelectedItems(); for (SnapshotWindow selectedSnapshotWindow : selectedSnapshots) { boolean found = false; for (SnapshotWindow s : getTaskFlowData().getSnapshots()) { if (s.getSnapshotWindowId().equals(selectedSnapshotWindow.getSnapshotWindowId())) { found = true; break; } } if (!found) { dataGridState.deSelectItem(selectedSnapshotWindow.getSnapshotWindowId().toString()); } } for (SnapshotWindow s : getTaskFlowData().getSnapshots()) { dataGridState.selectItem(s.getSnapshotWindowId().toString(), s); } } return SUCCESS; } }