void createDefinitionsIfMissing() { EList<EObject> contents = resource.getContents(); if (contents.isEmpty() || !(contents.get(0) instanceof DocumentRoot)) { TransactionalEditingDomain domain = TransactionUtil.getEditingDomain(resource); if (domain != null) { final DocumentRoot docRoot = FACTORY.createDocumentRoot(); final Definitions definitions = FACTORY.createDefinitions(); // definitions.setId(EcoreUtil.generateUUID()); ModelUtil.setID(definitions, resource); Collaboration collaboration = FACTORY.createCollaboration(); // collaboration.setId(EcoreUtil.generateUUID()); ModelUtil.setID(collaboration, resource); Participant participant = FACTORY.createParticipant(); // participant.setId(EcoreUtil.generateUUID()); ModelUtil.setID(participant, resource); participant.setName("Internal"); collaboration.getParticipants().add(participant); definitions.getRootElements().add(collaboration); domain .getCommandStack() .execute( new RecordingCommand(domain) { @Override protected void doExecute() { docRoot.setDefinitions(definitions); resource.getContents().add(docRoot); } }); return; } } }
public Definitions createAndInitResource(URI uri) { DroolsFactoryImpl.init(); BpsimFactoryImpl.init(); Resource resource = createResource(uri); Bpmn2Factory factory = Bpmn2Factory.eINSTANCE; Definitions definitions = factory.createDefinitions(); DocumentRoot docummentRoot = factory.createDocumentRoot(); docummentRoot.setDefinitions(definitions); resource.getContents().add(docummentRoot); return definitions; }
public Lane createLane(Object target) { Lane lane = FACTORY.createLane(); // lane.setId(EcoreUtil.generateUUID()); ModelUtil.setID(lane, resource); FlowElementsContainer container = getFlowElementContainer(target); if (container.getLaneSets().isEmpty()) { LaneSet laneSet = FACTORY.createLaneSet(); // laneSet.setId(EcoreUtil.generateUUID()); container.getLaneSets().add(laneSet); } container.getLaneSets().get(0).getLanes().add(lane); ModelUtil.setID(lane); return lane; }
private Collaboration getOrCreateCollaboration() { final List<RootElement> rootElements = getDefinitions().getRootElements(); for (RootElement element : rootElements) { if (element instanceof Collaboration) { return (Collaboration) element; } } TransactionalEditingDomain domain = TransactionUtil.getEditingDomain(resource); final Collaboration collaboration = FACTORY.createCollaboration(); // collaboration.setId(EcoreUtil.generateUUID()); ModelUtil.setID(collaboration, resource); if (domain != null) { domain .getCommandStack() .execute( new RecordingCommand(domain) { @Override protected void doExecute() { addCollaborationToRootElements(rootElements, collaboration); } }); } return collaboration; }
public ConversationLink createConversationLink(InteractionNode source, InteractionNode target) { ConversationLink link = FACTORY.createConversationLink(); link.setSourceRef(source); link.setTargetRef(target); getOrCreateCollaboration().getConversationLinks().add(link); return link; }
@Test @DiagramResource("org/camunda/bpm/modeler/test/ui/change/ChangeSupportTest.testBase.bpmn") public void testAttributeUpdate() { final SequenceFlow sequenceFlow2 = findBusinessObjectById(diagram, "SequenceFlow_2", SequenceFlow.class); FeatureChangeFilter filter = new FeatureChangeFilter(sequenceFlow2, CONDITION_EXPRESSION_FEATURE); CustomResourceSetListener listener = new CustomResourceSetListener(sequenceFlow2, filter); listener.register(); final FormalExpression expression = bpmn2factory.createFormalExpression(); expression.setBody("FOOO"); transactionalExecute( new RecordingCommand(editingDomain) { @Override protected void doExecute() { sequenceFlow2.setConditionExpression(expression); } }); assertThat(listener.getCapturedEvents()).hasSize(1); }
public void laneToTop(Lane lane) { LaneSet laneSet = FACTORY.createLaneSet(); // laneSet.setId(EcoreUtil.generateUUID()); ModelUtil.setID(laneSet, resource); laneSet.getLanes().add(lane); Process process = getOrCreateProcess(getInternalParticipant()); process.getLaneSets().add(laneSet); }
public Participant addParticipant() { Collaboration collaboration = getOrCreateCollaboration(); Participant participant = FACTORY.createParticipant(); // participant.setId(EcoreUtil.generateUUID()); ModelUtil.setID(participant, resource); collaboration.getParticipants().add(participant); return participant; }
public MessageFlow createMessageFlow(InteractionNode source, InteractionNode target) { MessageFlow messageFlow = FACTORY.createMessageFlow(); // messageFlow.setId(EcoreUtil.generateUUID()); ModelUtil.setID(messageFlow, resource); messageFlow.setSourceRef(source); messageFlow.setTargetRef(target); getOrCreateCollaboration().getMessageFlows().add(messageFlow); return messageFlow; }
public SequenceFlow createSequenceFlow(FlowNode source, FlowNode target) { SequenceFlow sequenceFlow = FACTORY.createSequenceFlow(); // sequenceFlow.setId(EcoreUtil.generateUUID()); ModelUtil.setID(sequenceFlow, resource); addFlowElement(source, sequenceFlow); sequenceFlow.setSourceRef(source); sequenceFlow.setTargetRef(target); return sequenceFlow; }
private InputOutputSpecification getOrCreateIOSpecification(Object target) { Process process = getOrCreateProcess(getParticipant(target)); if (process.getIoSpecification() == null) { InputOutputSpecification ioSpec = FACTORY.createInputOutputSpecification(); // ioSpec.setId(EcoreUtil.generateUUID()); ModelUtil.setID(ioSpec, resource); process.setIoSpecification(ioSpec); } return process.getIoSpecification(); }
public Process getOrCreateProcess(Participant participant) { if (participant.getProcessRef() == null) { Process process = FACTORY.createProcess(); // process.setId(EcoreUtil.generateUUID()); ModelUtil.setID(process, resource); process.setName("Process for " + participant.getName()); getDefinitions().getRootElements().add(process); participant.setProcessRef(process); } return participant.getProcessRef(); }
private void addCollaborationToRootElements( final List<RootElement> rootElements, final Collaboration collaboration) { Participant participant = FACTORY.createParticipant(); // participant.setId(EcoreUtil.generateUUID()); ModelUtil.setID(participant, resource); participant.setName("Internal"); for (RootElement element : rootElements) { if (element instanceof Process) { participant.setProcessRef((Process) element); break; } } collaboration.getParticipants().add(participant); rootElements.add(collaboration); }
public Association createAssociation(BaseElement source, BaseElement target) { BaseElement e = null; if (getParticipant(source) != null) { e = source; } else if (getParticipant(target) != null) { e = target; } else { e = getInternalParticipant(); } Association association = FACTORY.createAssociation(); addArtifact(e, association); // association.setId(EcoreUtil.generateUUID()); ModelUtil.setID(association, resource); association.setSourceRef(source); association.setTargetRef(target); return association; }
public Lane createLane(Lane targetLane) { Lane lane = FACTORY.createLane(); // lane.setId(EcoreUtil.generateUUID()); ModelUtil.setID(lane, resource); if (targetLane.getChildLaneSet() == null) { targetLane.setChildLaneSet(ModelHandler.FACTORY.createLaneSet()); } LaneSet targetLaneSet = targetLane.getChildLaneSet(); targetLaneSet.getLanes().add(lane); lane.getFlowNodeRefs().addAll(targetLane.getFlowNodeRefs()); targetLane.getFlowNodeRefs().clear(); return lane; }
@Test @DiagramResource("org/camunda/bpm/modeler/test/ui/change/ChangeSupportTest.testBase.bpmn") public void testListElementAdd() { final Process process1 = findBusinessObjectById(diagram, "Process_1", Process.class); final Task task2 = bpmn2factory.createTask(); FeatureChangeFilter filter = new FeatureChangeFilter(process1, FLOW_ELEMENTS_FEATURE); CustomResourceSetListener listener = new CustomResourceSetListener(process1, filter); listener.register(); transactionalExecute( new RecordingCommand(editingDomain) { @Override protected void doExecute() { process1.getFlowElements().add(task2); } }); assertThat(listener.getCapturedEvents()).hasSize(1); }