コード例 #1
0
  /*
   * (non-Javadoc)
   *
   * @seede.hpi.bpmn2_0.factory.AbstractBpmnFactory#createProcessElement(org.
   * oryxeditor.server.diagram.Shape)
   */
  @Override
  protected BaseElement createProcessElement(Shape shape) {
    SequenceFlow seqFlow = new SequenceFlow();
    this.setCommonAttributes(seqFlow, shape);
    seqFlow.setId(shape.getResourceId());
    seqFlow.setName(shape.getProperty("name"));

    String conditionType = shape.getProperty("conditiontype");
    String conditionExpression = shape.getProperty("conditionexpression");

    if (!(conditionType == null || conditionType.equals("Default"))
        && !(conditionExpression == null || conditionExpression.isEmpty())) {
      seqFlow.setConditionExpression(new FormalExpression(conditionExpression));
    }

    if (conditionType != null && conditionType.equals("Default")) {
      seqFlow.setDefaultSequenceFlow(true);
    }

    /* IsImmediate Property */
    String isImmediate = shape.getProperty("isimmediate");
    if (isImmediate != null) {
      if (isImmediate.equalsIgnoreCase("false")) seqFlow.setIsImmediate(false);
      else if (isImmediate.equalsIgnoreCase("true")) seqFlow.setIsImmediate(true);
    }

    return seqFlow;
  }
コード例 #2
0
 /* (non-Javadoc)
  * @see de.hpi.bpmn2_0.factory.AbstractBpmnFactory#createProcessElement(org.oryxeditor.server.diagram.Shape)
  */
 @Override
 protected Message createProcessElement(Shape shape) throws BpmnConverterException {
   Message msg = new Message();
   this.setCommonAttributes(msg, shape);
   msg.setId(shape.getResourceId());
   msg.setName(shape.getProperty("name"));
   msg.setInitiating(shape.getProperty("initiating").equalsIgnoreCase("true"));
   return msg;
 }
コード例 #3
0
  /* (non-Javadoc)
   * @see de.hpi.bpmn2_0.factory.AbstractBpmnFactory#createProcessElement(org.oryxeditor.server.diagram.Shape)
   */
  @Override
  protected ConversationLink createProcessElement(Shape shape) throws BpmnConverterException {
    ConversationLink link = new ConversationLink();
    this.setCommonAttributes(link, shape);
    link.setId(shape.getResourceId());
    link.setName(shape.getProperty("name"));

    return link;
  }
コード例 #4
0
  /*
   * (non-Javadoc)
   *
   * @seede.hpi.bpmn2_0.factory.AbstractBpmnFactory#createDiagramElement(org.
   * oryxeditor.server.diagram.Shape)
   */
  @Override
  protected Object createDiagramElement(Shape shape) {
    SequenceFlowConnector sequenceFlowConnector = new SequenceFlowConnector();
    sequenceFlowConnector.setId(shape.getResourceId() + "_gui");

    // TODO: Gedanken machen zu Label-Positioning
    sequenceFlowConnector.setLabel(shape.getProperty("name"));

    this.setBendpoints(sequenceFlowConnector, shape);

    return sequenceFlowConnector;
  }
コード例 #5
0
  /* (non-Javadoc)
   * @see de.hpi.bpmn2_0.factory.AbstractBpmnFactory#createDiagramElement(org.oryxeditor.server.diagram.Shape)
   */
  @Override
  protected ConversationLinkConnector createDiagramElement(Shape shape) {
    ConversationLinkConnector conLink = new ConversationLinkConnector();
    conLink.setId(shape.getResourceId() + "_gui");

    conLink.setLabel(shape.getProperty("name"));
    // TODO: Label position

    this.setBendpoints(conLink, shape);

    return conLink;
  }
コード例 #6
0
  private void expandSubProcesses(Diagram diagram) {
    List<Shape> shapes = diagram.getShapes();
    for (Shape shape : shapes) {
      if (STENCIL_COLLAPSED_SUBPROCESS.equals(shape.getStencilId())
          && !"true".equals(shape.getProperty(PROPERTY_IS_CALL_ACTIVITY))) {
        String subProcessUrl = shape.getProperty(PROPERTY_ENTRY);
        if (subProcessUrl != null && subProcessUrl.length() > 0) {
          String subProcessName = shape.getProperty(PROPERTY_NAME);
          try {
            String subProcessId = getModelIdFromSignavioUrl(subProcessUrl);

            //            RepositoryArtifact artifact =
            // connector.getRepositoryArtifact(subProcessId);
            String subProcessJson = connector.getContent(subProcessId).asString();

            Diagram subProcess = DiagramBuilder.parseJson(subProcessJson);

            // FIXME subProcess = new ExtractProcessOfParticipant("Process
            // Engine").transform(subProcess);

            expandSubProcesses(subProcess);

            shape.setStencil(new StencilType(STENCIL_SUBPROCESS));
            ArrayList<Shape> childShapes = shape.getChildShapes();
            childShapes.addAll(subProcess.getChildShapes());
          } catch (Exception e) {
            throw new JsonTransformationException(
                "Error while retrieving Sub-Process"
                    + " '"
                    + subProcessName
                    + "'"
                    + " (URL: "
                    + subProcessUrl
                    + ").",
                e);
          }
        }
      }
    }
  }