blob: ad3a38f6ed69e2b992be96875915baec2de917d3 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2007 Boeing.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Boeing - initial API and implementation
*******************************************************************************/
package org.eclipse.osee.ats.workflow.flow;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.osee.ats.artifact.TaskStates;
import org.eclipse.osee.ats.util.TeamState;
import org.eclipse.osee.ats.workflow.item.AtsWorkDefinitions;
import org.eclipse.osee.ats.workflow.page.AtsCancelledWorkPageDefinition;
import org.eclipse.osee.ats.workflow.page.AtsCompletedWorkPageDefinition;
import org.eclipse.osee.ats.workflow.page.AtsTaskInWorkPageDefinition;
import org.eclipse.osee.framework.core.exception.OseeCoreException;
import org.eclipse.osee.framework.core.exception.OseeStateException;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.ui.skynet.results.XResultData;
import org.eclipse.osee.framework.ui.skynet.widgets.workflow.WorkFlowDefinition;
import org.eclipse.osee.framework.ui.skynet.widgets.workflow.WorkItemDefinition;
import org.eclipse.osee.framework.ui.skynet.widgets.workflow.WorkPageDefinition;
import org.eclipse.osee.framework.ui.skynet.widgets.workflow.WorkPageType;
/**
* @author Donald G. Dunne
*/
public class TaskWorkflowDefinition extends WorkFlowDefinition {
public final static String ID = "osee.ats.taskWorkflow";
public TaskWorkflowDefinition() {
this(ID, ID);
startPageId = TaskStates.InWork.getPageName();
}
public TaskWorkflowDefinition(Artifact artifact) throws OseeCoreException {
super(artifact);
throw new OseeStateException("This constructor should never be used.");
}
public void config(WriteType writeType, XResultData xResultData) throws OseeCoreException {
AtsWorkDefinitions.importWorkItemDefinitionsIntoDb(writeType, xResultData, getAtsWorkDefinitions());
}
public static List<WorkItemDefinition> getAtsWorkDefinitions() {
List<WorkItemDefinition> workItems = new ArrayList<WorkItemDefinition>();
// Add Task Page and Workflow Definition
workItems.add(new AtsTaskInWorkPageDefinition(1));
workItems.add(new WorkPageDefinition(TeamState.Completed.getPageName(),
ID + "." + TaskStates.Completed.getPageName(), AtsCompletedWorkPageDefinition.ID, WorkPageType.Completed, 2));
workItems.add(new WorkPageDefinition(TeamState.Cancelled.getPageName(),
ID + "." + TaskStates.Cancelled.getPageName(), AtsCancelledWorkPageDefinition.ID, WorkPageType.Cancelled, 3));
workItems.add(new TaskWorkflowDefinition());
return workItems;
}
public TaskWorkflowDefinition(String name, String id) {
super(name, id, null);
addPageTransition(TaskStates.InWork.getPageName(), TaskStates.Completed.getPageName(),
TransitionType.ToPageAsDefault);
// Add return transitions
addPageTransition(TaskStates.Completed.getPageName(), TaskStates.InWork.getPageName(),
TransitionType.ToPageAsReturn);
// Add cancelled transitions
addPageTransitionToPageAndReturn(TaskStates.InWork.getPageName(), TaskStates.Cancelled.getPageName());
}
}