Examples of BPMNPlane


Examples of org.eclipse.bpmn2.di.BPMNPlane

            for (RootElement rootElement: def.getRootElements()) {
                if (rootElement instanceof Process) {
                    Process process = (Process) rootElement;
                    BpmnDiFactory diFactory = BpmnDiFactory.eINSTANCE;
                    BPMNDiagram diagram = diFactory.createBPMNDiagram();
                    BPMNPlane plane = diFactory.createBPMNPlane();
                    plane.setBpmnElement(process);
                    diagram.setPlane(plane);
                    for (FlowElement flowElement: process.getFlowElements()) {
                        if (flowElement instanceof FlowNode) {
                            Bounds b = _bounds.get(flowElement.getId());
                            if (b != null) {
                                BPMNShape shape = diFactory.createBPMNShape();
                                shape.setBpmnElement(flowElement);
                                shape.setBounds(b);
                                plane.getPlaneElement().add(shape);
                            }
                        } else if (flowElement instanceof SequenceFlow) {
                            SequenceFlow sequenceFlow = (SequenceFlow) flowElement;
                            BPMNEdge edge = diFactory.createBPMNEdge();
                            edge.setBpmnElement(flowElement);
                            DcFactory dcFactory = DcFactory.eINSTANCE;
                            Point point = dcFactory.createPoint();
                            if(sequenceFlow.getSourceRef() != null) {
                                Bounds sourceBounds = _bounds.get(sequenceFlow.getSourceRef().getId());
                                point.setX(sourceBounds.getX() + (sourceBounds.getWidth()/2));
                                point.setY(sourceBounds.getY() + (sourceBounds.getHeight()/2));
                            }
                            edge.getWaypoint().add(point);
//                List<Point> dockers = _dockers.get(sequenceFlow.getId());
//                for (int i = 1; i < dockers.size() - 1; i++) {
//                  edge.getWaypoint().add(dockers.get(i));
//                }
                            point = dcFactory.createPoint();
                            if(sequenceFlow.getTargetRef() != null) {
                                Bounds targetBounds = _bounds.get(sequenceFlow.getTargetRef().getId());
                                point.setX(targetBounds.getX() + (targetBounds.getWidth()/2));
                                point.setY(targetBounds.getY() + (targetBounds.getHeight()/2));
                            }
                            edge.getWaypoint().add(point);
                            plane.getPlaneElement().add(edge);
                        }
                    }

                    def.getDiagrams().add(diagram);
                }
View Full Code Here

Examples of org.eclipse.bpmn2.di.BPMNPlane

        }
        generator.writeEndObject();
    }

    protected void marshallProcess(Process process, Definitions def, JsonGenerator generator, String preProcessingData) throws JsonGenerationException, IOException {
      BPMNPlane plane = null;
      for (BPMNDiagram d: def.getDiagrams()) {
        if (d != null) {
          BPMNPlane p = d.getPlane();
          if (p != null) {
            if (p.getBpmnElement() == process) {
              plane = p;
              break;
            }
          }
        }
View Full Code Here

Examples of org.eclipse.bpmn2.di.BPMNPlane

    }



    public void revisitDI(Definitions def) {
        BPMNPlane plane = def.getDiagrams().get(0).getPlane();
        List<DiagramElement> diagramElements = plane.getPlaneElement();
        for(DiagramElement dia : diagramElements) {
            if(dia instanceof BPMNShape) {
                BPMNShape shape = (BPMNShape) dia;
                updateShapeBounds(def, plane, shape.getBpmnElement());
            }
View Full Code Here

Examples of org.eclipse.bpmn2.di.BPMNPlane

        }
    }

    public void revisitDIColors(Definitions def) {
        BPMNPlane plane = def.getDiagrams().get(0).getPlane();
        List<DiagramElement> diagramElements = plane.getPlaneElement();
        for(DiagramElement dia : diagramElements) {
            if(dia instanceof BPMNShape) {
                BPMNShape shape = (BPMNShape) dia;
                updateShapeColors(shape);
            }
View Full Code Here

Examples of org.eclipse.bpmn2.di.BPMNPlane

      for (RootElement rootElement: def.getRootElements()) {
        if (rootElement instanceof Process) {
          Process process = (Process) rootElement;
            BpmnDiFactory factory = BpmnDiFactory.eINSTANCE;
            BPMNDiagram diagram = factory.createBPMNDiagram();
            BPMNPlane plane = factory.createBPMNPlane();
            plane.setBpmnElement(process);
            diagram.setPlane(plane);
          // first process flowNodes
            for (FlowElement flowElement: process.getFlowElements()) {
              if (flowElement instanceof FlowNode) {
                Bounds b = _bounds.get(flowElement.getId());
                if (b != null) {
                  BPMNShape shape = factory.createBPMNShape();
                  shape.setBpmnElement(flowElement);
                  shape.setBounds(b);
                  plane.getPlaneElement().add(shape);
                  if(flowElement instanceof BoundaryEvent) {
                    BPMNEdge edge = factory.createBPMNEdge();
                    edge.setBpmnElement(flowElement);
                    List<Point> dockers = _dockers.get(flowElement.getId());
                    DcFactory dcFactory = DcFactory.eINSTANCE;
                    Point addedDocker = dcFactory.createPoint();
                    for (int i = 0; i < dockers.size(); i++) {
                      edge.getWaypoint().add(dockers.get(i));
                      if(i == 0) {
                        addedDocker.setX(dockers.get(i).getX());
                        addedDocker.setY(dockers.get(i).getY());
                      }
                    }
                    if(dockers.size() == 1) {
                      edge.getWaypoint().add(addedDocker);
                    }
                    plane.getPlaneElement().add(edge);
                  }
                }
                // check if its a subprocess
                if(flowElement instanceof SubProcess) {
                  createSubProcessDiagram(plane, flowElement, factory);
                }
              } else if(flowElement instanceof DataObject) {
                Bounds b = _bounds.get(flowElement.getId());
                if (b != null) {
                  BPMNShape shape = factory.createBPMNShape();
                  shape.setBpmnElement(flowElement);
                  shape.setBounds(b);
                  plane.getPlaneElement().add(shape);
                }
              }
              else if (flowElement instanceof SequenceFlow) {
                SequenceFlow sequenceFlow = (SequenceFlow) flowElement;
                BPMNEdge edge = factory.createBPMNEdge();
              edge.setBpmnElement(flowElement);
              DcFactory dcFactory = DcFactory.eINSTANCE;
              Point point = dcFactory.createPoint();
              if(sequenceFlow.getSourceRef() != null) {
                Bounds sourceBounds = _bounds.get(sequenceFlow.getSourceRef().getId());
                point.setX(sourceBounds.getX() + (sourceBounds.getWidth()/2));
                point.setY(sourceBounds.getY() + (sourceBounds.getHeight()/2));
              }
              edge.getWaypoint().add(point);
              List<Point> dockers = _dockers.get(sequenceFlow.getId());
              for (int i = 1; i < dockers.size() - 1; i++) {
                edge.getWaypoint().add(dockers.get(i));
              }
              point = dcFactory.createPoint();
              if(sequenceFlow.getTargetRef() != null) {
                Bounds targetBounds = _bounds.get(sequenceFlow.getTargetRef().getId());
                point.setX(targetBounds.getX() + (targetBounds.getWidth()/2));
                point.setY(targetBounds.getY() + (targetBounds.getHeight()/2));
              }
              edge.getWaypoint().add(point);
              plane.getPlaneElement().add(edge);
              }
            }
            // artifacts
                if (process.getArtifacts() != null){
                    for (Artifact artifact : process.getArtifacts()) {
                        if (artifact instanceof TextAnnotation || artifact instanceof Group) {
                          Bounds b = _bounds.get(artifact.getId());
                          if (b != null) {
                            BPMNShape shape = factory.createBPMNShape();
                            shape.setBpmnElement(artifact);
                            shape.setBounds(b);
                            plane.getPlaneElement().add(shape);
                          }
                        }
                        if (artifact instanceof Association){
                            Association association = (Association)artifact;
                            BPMNEdge edge = factory.createBPMNEdge();
                            edge.setBpmnElement(association);
                            DcFactory dcFactory = DcFactory.eINSTANCE;
                            Point point = dcFactory.createPoint();
                            Bounds sourceBounds = _bounds.get(association.getSourceRef().getId());
                            point.setX(sourceBounds.getX() + (sourceBounds.getWidth()/2));
                            point.setY(sourceBounds.getY() + (sourceBounds.getHeight()/2));
                            edge.getWaypoint().add(point);
                            List<Point> dockers = _dockers.get(association.getId());
                            for (int i = 1; i < dockers.size() - 1; i++) {
                                    edge.getWaypoint().add(dockers.get(i));
                            }
                            point = dcFactory.createPoint();
                            Bounds targetBounds = _bounds.get(association.getTargetRef().getId());
                            point.setX(targetBounds.getX()); // TODO check
                            point.setY(targetBounds.getY() + (targetBounds.getHeight()/2));
                            edge.getWaypoint().add(point);
                            plane.getPlaneElement().add(edge);
                        }
                    }
                }
            // lanes
            if(process.getLaneSets() != null && process.getLaneSets().size() > 0) {
              for(LaneSet ls : process.getLaneSets()) {
                for(Lane lane : ls.getLanes()) {
                  Bounds b = _bounds.get(lane.getId());
                    if (b != null) {
                      BPMNShape shape = factory.createBPMNShape();
                      shape.setBpmnElement(lane);
                      shape.setBounds(b);
                      plane.getPlaneElement().add(shape);
                    }
                }
              }
            }
            def.getDiagrams().add(diagram);
View Full Code Here

Examples of org.eclipse.bpmn2.di.BPMNPlane

            if (result == null)
                result = defaultCase(theEObject);
            return result;
        }
        case BpmnDiPackage.BPMN_PLANE: {
            BPMNPlane bpmnPlane = (BPMNPlane) theEObject;
            T result = caseBPMNPlane(bpmnPlane);
            if (result == null)
                result = casePlane(bpmnPlane);
            if (result == null)
                result = caseNode(bpmnPlane);
View Full Code Here

Examples of org.eclipse.bpmn2.di.BPMNPlane

     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public NotificationChain basicSetPlane(BPMNPlane newPlane, NotificationChain msgs) {
        BPMNPlane oldPlane = plane;
        plane = newPlane;
        if (eNotificationRequired()) {
            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
                    BpmnDiPackage.BPMN_DIAGRAM__PLANE, oldPlane, newPlane);
            if (msgs == null)
View Full Code Here

Examples of org.eclipse.bpmn2.di.BPMNPlane

   
    String nodeTempPath = ProcessEngineManagement.getDefaultProcessEngine().getProcessEngineConfiguration().getCopyTemplatePath();
    InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(nodeTempPath);
    Definitions bpmnModel = new FixFlowConverter().getDefinitions("temp", inputStream);
    BPMNDiagram bpmnDiagram=bpmnModel.getDiagrams().get(0);
    BPMNPlane bpmnPlane = bpmnDiagram.getPlane();
    Process process = (Process)bpmnModel.getRootElements().get(0);
    Map<String, JsonNode> shapeMap = new HashMap<String, JsonNode> ();
    Map<String, JsonNode> sourceRefMap = new HashMap<String, JsonNode>();
    Map<String, JsonNode> edgeMap = new HashMap<String, JsonNode>();
    Map<String, List<JsonNode>> sourceAndTargetMap = new HashMap<String, List<JsonNode>>();
    readShapeDI(modelNode, 0, 0, shapeMap, sourceRefMap, bpmnModel);
    filterAllEdges(modelNode, edgeMap, sourceAndTargetMap, shapeMap, sourceRefMap);
    ArrayNode shapesArrayNode = (ArrayNode) modelNode.get(EDITOR_CHILD_SHAPES);
    //做pool的时候用
    boolean nonEmptyPoolFound = false;

    if (nonEmptyPoolFound == false) {
        JsonNode processIdNode = JsonConverterUtil.getProperty(PROPERTY_OVERRIDE_ID, modelNode);
        if(processIdNode != null && StringUtils.isNotEmpty(processIdNode.asText())) {
          process.setId(processIdNode.asText());
        }
        JsonNode processNameNode = JsonConverterUtil.getProperty(PROPERTY_NAME, modelNode);
        if(processNameNode != null && StringUtils.isNotEmpty(processNameNode.asText())) {
          process.setName(processNameNode.asText());
        }
       
        //加载process的扩展元素
        //任务主题
        JsonNode processSubject = JsonConverterUtil.getProperty(PROPERTY_PROCESS_SUBJECT, modelNode);
        if(processSubject != null && StringUtils.isNotEmpty(processSubject.asText())) {
          TaskSubject taskSubject = FixFlowFactory.eINSTANCE.createTaskSubject();
            Expression subjectExpression = FixFlowFactory.eINSTANCE.createExpression();
            subjectExpression.setName(processSubject.asText());
            subjectExpression.setValue(processSubject.asText());
            taskSubject.setExpression(subjectExpression);
            taskSubject.setId("TaskSubject_1");
            BpmnModelUtil.addExtensionElement(process, FixFlowPackage.Literals.DOCUMENT_ROOT__TASK_SUBJECT, taskSubject);
        }
       
        //流程分类
        JsonNode processCategory = JsonConverterUtil.getProperty(PROPERTY_PROCESS_CATEGORY, modelNode);
        if(processCategory != null &&!"null".equals(processCategory.asText()) && StringUtil.isNotEmpty(processCategory.asText())){
          BpmnModelUtil.addExtensionAttribute(process, FixFlowPackage.Literals.DOCUMENT_ROOT__CATEGORY, processCategory.asText());
        }
       
        //默认表单
        JsonNode processFormUri = JsonConverterUtil.getProperty(PROPERTY_PROCESS_DEFAULT_FORMURI, modelNode);
        if(processFormUri != null && StringUtil.isNotEmpty(processFormUri.asText())){
          FormUri formUri = FixFlowFactory.eINSTANCE.createFormUri();
          Expression expression = FixFlowFactory.eINSTANCE.createExpression();
          expression.setName(processFormUri.asText());
          expression.setValue(processFormUri.asText());
          formUri.setExpression(expression);
          BpmnModelUtil.addExtensionElement(process, FixFlowPackage.Literals.DOCUMENT_ROOT__FORM_URI, formUri);
        }
       
        //流程变量
        JsonNode dataVariablesNode = JsonConverterUtil.getProperty(PROPERTY_PROCESS_DATAVARIABLE, modelNode);
        if(dataVariablesNode != null){
          JsonNode itemsNode = dataVariablesNode.get(EDITOR_PROPERTIES_GENERAL_ITEMS);
          if(itemsNode != null) {
                Iterator<JsonNode> variableIterator = itemsNode.getElements();
                while(variableIterator.hasNext()) {
                  JsonNode variableNode = variableIterator.next();
                  String id = variableNode.get(PROPERTY_DATAVARIABLE_ID).asText();
                  String dataType = variableNode.get(PROPERTY_DATAVARIABLE_TYPE).asText();
                  String bizType = variableNode.get(PROPERTY_DATAVARIABLE_BIZTYPE).asText();
                  boolean isPersistence = StringUtil.getBoolean(variableNode.get(PROPERTY_DATAVARIABLE_IS_PERSISTENCE));
                  String expression = "";
                  JsonNode tmpNode = variableNode.get(PROPERTY_DATAVARIABLE_DEFAULT_VALUE);
                  if(tmpNode != null){
                    expression = tmpNode.asText();
                  }
                  DataVariable dataVariableObj = FixFlowFactory.eINSTANCE.createDataVariable();
                  dataVariableObj.setBizType(bizType);
                  dataVariableObj.setId(id);
                  dataVariableObj.setDataType(dataType);
                  dataVariableObj.setIsPersistence(isPersistence);
                  Expression variableExpression = FixFlowFactory.eINSTANCE.createExpression();
                  variableExpression.setValue(expression);
                  variableExpression.setName(expression);
                  dataVariableObj.setExpression(variableExpression);
                  BpmnModelUtil.addExtensionElement(process, FixFlowPackage.Literals.DOCUMENT_ROOT__DATA_VARIABLE, dataVariableObj);
                }
          }
        }
        String isVerify = JsonConverterUtil.getProperty(PROPERTY_PROCESS_IS_VERIFY, modelNode).asText();
        BpmnModelUtil.addExtensionAttribute(process, FixFlowPackage.Literals.DOCUMENT_ROOT__VERIFICATION, isVerify);
       
        JsonNode processTargetNamespace = JsonConverterUtil.getProperty(PROPERTY_PROCESS_NAMESPACE, modelNode);
        if(processTargetNamespace != null && StringUtils.isNotEmpty(processTargetNamespace.asText())) {
          bpmnModel.setTargetNamespace(processTargetNamespace.asText());
        }
      
        ConnectorInstanceElm cie = new ConnectorInstanceElm();
        List<ConnectorInstance> list_ci = cie.convertJsonToElement(modelNode);
        if(list_ci != null){
          for (int i = 0; i < list_ci.size(); i++) {
            BpmnModelUtil.addExtensionElement(process, FixFlowPackage.Literals.DOCUMENT_ROOT__CONNECTOR_INSTANCE, list_ci.get(i));
          }
        }
        processJsonElements(shapesArrayNode, modelNode, process, shapeMap,sourceAndTargetMap,bpmnModel);
    }
   
      // Add flows to map for later processing
   
    Map<String, SequenceFlow> flowSourceMap = new HashMap<String, SequenceFlow>();
    Map<String, SequenceFlow> flowTargetMap = new HashMap<String, SequenceFlow>();
    //初始化线条的source map和target map,后面为flowNode加载来源和target
    addAllSequenceFlows(process.getFlowElements(), flowSourceMap, flowTargetMap);
    //flowElement的incoming和outgoing处理
    postProcessElements(process, process.getFlowElements(), flowSourceMap, flowTargetMap);
    //给根plane set 关联元素
    bpmnPlane.setBpmnElement(BpmnModelUtil.getBaseElement(bpmnModel, process.getId()));
    //给shape元素 set 关联元素
    for(DiagramElement diagram :  bpmnModel.getDiagrams().get(0).getPlane().getPlaneElement()){
      if(diagram instanceof BPMNShape){
        BPMNShape bpmnShape = (BPMNShape)diagram;
        String shapeId = bpmnShape.getId();
View Full Code Here

Examples of org.eclipse.bpmn2.di.BPMNPlane

    domain.getCommandStack().execute(new RecordingCommand(domain) {
      @Override
      protected void doExecute() {

        if (diagrams.size() == 0) {
          BPMNPlane plane = BpmnDiFactory.eINSTANCE.createBPMNPlane();
          plane.setBpmnElement(modelHandler.getOrCreateProcess(modelHandler.getInternalParticipant()));

          BPMNDiagram d = BpmnDiFactory.eINSTANCE.createBPMNDiagram();
          d.setPlane(plane);

          modelHandler.getDefinitions().getDiagrams().add(d);
          featureProvider.link(diagram, d);
        }

        // First: add all IDs to our ID mapping table
        for (BPMNDiagram d : diagrams) {
          TreeIterator<EObject> iter = d.eAllContents();
          while (iter.hasNext()) {
            ModelUtil.addID( iter.next() );
          }
        }
       
        for (BPMNDiagram d : diagrams) {
          featureProvider.link(diagram, d);
          BPMNPlane plane = d.getPlane();
          if (plane.getBpmnElement() == null) {
            plane.setBpmnElement(modelHandler.getOrCreateProcess(modelHandler.getInternalParticipant()));
          }
          List<DiagramElement> ownedElement = plane.getPlaneElement();

          // FIXME: here we should create a new diagram and an editor page
          importShapes(ownedElement);
          importConnections(ownedElement);
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.