@Override public UserTaskActivityBehavior createUserTaskActivityBehavior(UserTask userTask, TaskDefinition taskDefinition) { return new UserTaskActivityBehavior(userTask.getId(), taskDefinition); }
@Override protected void executeParse(BpmnParse bpmnParse, UserTask userTask) { ActivityImpl activity = createActivityOnCurrentScope(bpmnParse, userTask, BpmnXMLConstants.ELEMENT_TASK_USER); activity.setAsync(userTask.isAsynchronous()); activity.setExclusive(!userTask.isNotExclusive()); TaskDefinition taskDefinition = parseTaskDefinition(bpmnParse, userTask, userTask.getId(), (ProcessDefinitionEntity) bpmnParse.getCurrentScope().getProcessDefinition()); activity.setProperty(PROPERTY_TASK_DEFINITION, taskDefinition); activity.setActivityBehavior(bpmnParse.getActivityBehaviorFactory().createUserTaskActivityBehavior(userTask, taskDefinition)); }
taskDefinition.addTaskListener(taskListener.getEvent(), createTaskListener(bpmnParse, taskListener, userTask.getId()));
task.setTaskDefinitionKey(userTask.getId()); ObjectNode taskElementProperties = BpmnOverrideContext.getBpmnOverrideElementProperties(userTask.getId(), execution.getProcessDefinitionId()); activeTaskName = getActiveValue(userTask.getName(), DynamicBpmnConstants.USER_TASK_NAME, taskElementProperties); activeTaskDescription = getActiveValue(userTask.getDocumentation(), DynamicBpmnConstants.USER_TASK_DESCRIPTION, taskElementProperties);
userTask.setId(dynamicUserTaskBuilder.nextTaskId(process.getFlowElementMap())); dynamicUserTaskBuilder.setDynamicTaskId(userTask.getId()); process.addFlowElement(endEvent); SequenceFlow flowToUserTask = new SequenceFlow(parallelGateway.getId(), userTask.getId()); flowToUserTask.setId(dynamicUserTaskBuilder.nextFlowId(process.getFlowElementMap())); process.addFlowElement(flowToUserTask); SequenceFlow flowFromUserTask = new SequenceFlow(userTask.getId(), endEvent.getId()); flowFromUserTask.setId(dynamicUserTaskBuilder.nextFlowId(process.getFlowElementMap())); process.addFlowElement(flowFromUserTask); bpmnModel.addGraphicInfo(userTask.getId(), newTaskGraphicInfo);
parentContainer.removeFlowElement(userTask.getId()); bpmnModel.removeGraphicInfo(userTask.getId()); subProcess.addFlowElement(userTask); newUserTask.setId(dynamicUserTaskBuilder.nextTaskId(process.getFlowElementMap())); dynamicUserTaskBuilder.setDynamicTaskId(newUserTask.getId()); SequenceFlow forkFlow1 = new SequenceFlow(fork.getId(), userTask.getId()); forkFlow1.setId(dynamicUserTaskBuilder.nextFlowId(process.getFlowElementMap())); subProcess.addFlowElement(forkFlow1); SequenceFlow forkFlow2 = new SequenceFlow(fork.getId(), newUserTask.getId()); forkFlow2.setId(dynamicUserTaskBuilder.nextFlowId(process.getFlowElementMap())); subProcess.addFlowElement(forkFlow2); SequenceFlow joinFlow1 = new SequenceFlow(userTask.getId(), join.getId()); joinFlow1.setId(dynamicUserTaskBuilder.nextFlowId(process.getFlowElementMap())); subProcess.addFlowElement(joinFlow1); SequenceFlow joinFlow2 = new SequenceFlow(newUserTask.getId(), join.getId()); joinFlow2.setId(dynamicUserTaskBuilder.nextFlowId(process.getFlowElementMap())); subProcess.addFlowElement(joinFlow2); bpmnModel.addGraphicInfo(userTask.getId(), taskGraphicInfo); bpmnModel.addGraphicInfo(newUserTask.getId(), newTaskGraphicInfo);
GraphicInfo elementGraphicInfo = bpmnModel.getGraphicInfo(userTask.getId()); parentContainer.removeFlowElement(userTask.getId()); bpmnModel.removeGraphicInfo(userTask.getId()); parentSubProcess.addFlowElement(userTask); parentSubProcess.addFlowElement(startFlow1); SequenceFlow forkFlow1 = new SequenceFlow(fork.getId(), userTask.getId()); forkFlow1.setId(dynamicEmbeddedSubProcessBuilder.nextFlowId(process.getFlowElementMap())); parentSubProcess.addFlowElement(forkFlow1); parentSubProcess.addFlowElement(join); SequenceFlow joinFlow1 = new SequenceFlow(userTask.getId(), join.getId()); joinFlow1.setId(dynamicEmbeddedSubProcessBuilder.nextFlowId(process.getFlowElementMap())); parentSubProcess.addFlowElement(joinFlow1); bpmnModel.addGraphicInfo(userTask.getId(), taskGraphicInfo);