package org.js.model.workflow.actions;
import org.eclipse.jwt.meta.model.processes.Action;
import org.eclipse.jwt.meta.model.processes.FinalNode;
import org.eclipse.jwt.meta.model.processes.ForkNode;
import org.eclipse.jwt.meta.model.processes.InitialNode;
import org.js.model.workflow.util.ChangePrimitive;
import org.js.model.workflow.util.WorkflowModelUtil;
public class InitialAction extends MyAction {
public InitialAction() {
}
@Override
public void run() {
initialRes();
initialWorkflow();
save();
refresh();
}
/**
* initial the workflow with an initial node -> fork -> idle action -> final node.
*/
public void initialWorkflow() {
if(WorkflowModelUtil.getIdleAction(activity)==null){
InitialNode initNode = ChangePrimitive.addInitialNode(activity,
diagram, WorkflowModelUtil.INITIAL_NODE, 100, 100);
ForkNode fork = ChangePrimitive.addForkNode(activity, diagram, 150, 100);
Action action = ChangePrimitive.addAction(workflowModel, activity,
diagram, WorkflowModelUtil.IDLE_ACTION, 200, 100);
FinalNode finalNode = ChangePrimitive.addActivityFinalNode(activity,
diagram, WorkflowModelUtil.ACTIVITY_FINAL_NODE, 350, 100);
ChangePrimitive.addEdge(activity, initNode, fork);
ChangePrimitive.addEdge(activity, fork, action);
ChangePrimitive.addEdge(activity, action, finalNode);
ChangePrimitive.updateActionState(action);
}
}
}