From 82fbbf24939e150ee3cef90dc0dd843c9897a7e6 Mon Sep 17 00:00:00 2001
From: kimi <kimi42345@gmail.com>
Date: 星期六, 23 五月 2020 12:27:13 +0800
Subject: [PATCH] 添加 log前 去除bak文件前的备份

---
 src/main/java/com/highdatas/mdm/process/canvas/ProcessDiagramGenerator.java |  570 ++++++++++++++++++++++++++++----------------------------
 1 files changed, 285 insertions(+), 285 deletions(-)

diff --git a/src/main/java/com/highdatas/mdm/process/canvas/ProcessDiagramGenerator.java b/src/main/java/com/highdatas/mdm/process/canvas/ProcessDiagramGenerator.java
index 782efb5..0fab258 100644
--- a/src/main/java/com/highdatas/mdm/process/canvas/ProcessDiagramGenerator.java
+++ b/src/main/java/com/highdatas/mdm/process/canvas/ProcessDiagramGenerator.java
@@ -1,285 +1,285 @@
-package com.highdatas.mdm.process.canvas;
-
-import org.activiti.bpmn.model.*;
-import org.activiti.bpmn.model.Process;
-import org.activiti.image.impl.DefaultProcessDiagramCanvas;
-import org.activiti.image.impl.DefaultProcessDiagramGenerator;
-
-import java.util.Iterator;
-import java.util.List;
-
-public class ProcessDiagramGenerator extends DefaultProcessDiagramGenerator{
-	
-   
-    @Override
-    protected ProcessDiagramCanvas generateProcessDiagram(BpmnModel bpmnModel, String imageType, List<String> highLightedActivities, List<String> highLightedFlows, String activityFontName, String labelFontName,String annotationFontName,  ClassLoader customClassLoader, double scaleFactor){
-      prepareBpmnModel(bpmnModel);
-
-      ProcessDiagramCanvas processDiagramCanvas = initProcessDiagramCanvas(bpmnModel, imageType, activityFontName, labelFontName, customClassLoader);
-
-      for (Pool pool : bpmnModel.getPools()) {
-        GraphicInfo graphicInfo = bpmnModel.getGraphicInfo(pool.getId());
-        processDiagramCanvas.drawPoolOrLane(pool.getName(), graphicInfo);
-      }
-      Process process;
-      for (Iterator<Process> iter = bpmnModel.getProcesses().iterator(); iter.hasNext(); ) {
-    	process = (Process)iter.next();
-        for (Lane lane : process.getLanes()) {
-          GraphicInfo graphicInfo = bpmnModel.getGraphicInfo(lane.getId());
-          processDiagramCanvas.drawPoolOrLane(lane.getName(), graphicInfo);
-        }
-
-      }
-
-        List<Process> processes = bpmnModel.getProcesses();
-        if (!processes.isEmpty()) {
-
-            for (FlowNode flowNode : ((Process) bpmnModel.getProcesses().get(0)).findFlowElementsOfType(FlowNode.class)) {
-                drawActivity(processDiagramCanvas, bpmnModel, flowNode, highLightedActivities, highLightedFlows, scaleFactor);
-            }
-        }
-      
-      for (Iterator<Process> iter = bpmnModel.getProcesses().iterator(); iter.hasNext(); ) { process = (Process)iter.next();
-        for (Artifact artifact : process.getArtifacts()) {
-          drawArtifact(processDiagramCanvas, bpmnModel, artifact);
-        }
-      }
-
-      return processDiagramCanvas;
-    }
-    
-    protected static ProcessDiagramCanvas initProcessDiagramCanvas(BpmnModel bpmnModel, String imageType, String activityFontName, String labelFontName, ClassLoader customClassLoader){
-    	double minX = 1.7976931348623157E+308D;
-        double maxX = 0.0D;
-        double minY = 1.7976931348623157E+308D;
-        double maxY = 0.0D;
-
-        for (Pool pool : bpmnModel.getPools()) {
-          GraphicInfo graphicInfo = bpmnModel.getGraphicInfo(pool.getId());
-          minX = graphicInfo.getX();
-          maxX = graphicInfo.getX() + graphicInfo.getWidth();
-          minY = graphicInfo.getY();
-          maxY = graphicInfo.getY() + graphicInfo.getHeight();
-        }
-
-        List<FlowNode> flowNodes = gatherAllFlowNodes(bpmnModel);
-        for (FlowNode flowNode : flowNodes)
-        {
-          GraphicInfo flowNodeGraphicInfo = bpmnModel.getGraphicInfo(flowNode.getId());
-
-          if (flowNodeGraphicInfo.getX() + flowNodeGraphicInfo.getWidth() > maxX) {
-            maxX = flowNodeGraphicInfo.getX() + flowNodeGraphicInfo.getWidth();
-          }
-          if (flowNodeGraphicInfo.getX() < minX) {
-            minX = flowNodeGraphicInfo.getX();
-          }
-
-          if (flowNodeGraphicInfo.getY() + flowNodeGraphicInfo.getHeight() > maxY) {
-            maxY = flowNodeGraphicInfo.getY() + flowNodeGraphicInfo.getHeight();
-          }
-          if (flowNodeGraphicInfo.getY() < minY) {
-            minY = flowNodeGraphicInfo.getY();
-          }
-
-          for (SequenceFlow sequenceFlow : flowNode.getOutgoingFlows()) {
-            List<GraphicInfo> graphicInfoList = bpmnModel.getFlowLocationGraphicInfo(sequenceFlow.getId());
-            if (graphicInfoList != null) {
-              for (GraphicInfo graphicInfo : graphicInfoList)
-              {
-                if (graphicInfo.getX() > maxX) {
-                  maxX = graphicInfo.getX();
-                }
-                if (graphicInfo.getX() < minX) {
-                  minX = graphicInfo.getX();
-                }
-
-                if (graphicInfo.getY() > maxY) {
-                  maxY = graphicInfo.getY();
-                }
-                if (graphicInfo.getY() < minY) {
-                  minY = graphicInfo.getY();
-                }
-              }
-            }
-          }
-        }
-        GraphicInfo graphicInfo;
-        List<Artifact> artifacts = gatherAllArtifacts(bpmnModel);
-        for (Artifact artifact : artifacts)
-        {
-          GraphicInfo artifactGraphicInfo = bpmnModel.getGraphicInfo(artifact.getId());
-
-          if (artifactGraphicInfo != null)
-          {
-            if (artifactGraphicInfo.getX() + artifactGraphicInfo.getWidth() > maxX) {
-              maxX = artifactGraphicInfo.getX() + artifactGraphicInfo.getWidth();
-            }
-            if (artifactGraphicInfo.getX() < minX) {
-              minX = artifactGraphicInfo.getX();
-            }
-
-            if (artifactGraphicInfo.getY() + artifactGraphicInfo.getHeight() > maxY) {
-              maxY = artifactGraphicInfo.getY() + artifactGraphicInfo.getHeight();
-            }
-            if (artifactGraphicInfo.getY() < minY) {
-              minY = artifactGraphicInfo.getY();
-            }
-          }
-
-          List<GraphicInfo> graphicInfoList = bpmnModel.getFlowLocationGraphicInfo(artifact.getId());
-        
-          if (graphicInfoList != null) {
-        	
-            for (Iterator<GraphicInfo> iterator = graphicInfoList.iterator(); iterator.hasNext(); ) { graphicInfo = (GraphicInfo)iterator.next();
-
-              if (graphicInfo.getX() > maxX) {
-                maxX = graphicInfo.getX();
-              }
-              if (graphicInfo.getX() < minX) {
-                minX = graphicInfo.getX();
-              }
-
-              if (graphicInfo.getY() > maxY) {
-                maxY = graphicInfo.getY();
-              }
-              if (graphicInfo.getY() < minY) {
-                minY = graphicInfo.getY();
-              }
-            }
-          }
-
-        }
-
-       
-        int nrOfLanes = 0;
-        for (Process process : bpmnModel.getProcesses()) {
-          for (Lane l : process.getLanes())
-          {
-            ++nrOfLanes;
-
-            graphicInfo = bpmnModel.getGraphicInfo(l.getId());
-
-            if (graphicInfo.getX() + graphicInfo.getWidth() > maxX) {
-              maxX = graphicInfo.getX() + graphicInfo.getWidth();
-            }
-            if (graphicInfo.getX() < minX) {
-              minX = graphicInfo.getX();
-            }
-
-            if (graphicInfo.getY() + graphicInfo.getHeight() > maxY) {
-              maxY = graphicInfo.getY() + graphicInfo.getHeight();
-            }
-            if (graphicInfo.getY() < minY) {
-              minY = graphicInfo.getY();
-            }
-          }
-
-        }
-
-        if ((flowNodes.isEmpty()) && (bpmnModel.getPools().isEmpty()) && (nrOfLanes == 0))
-        {
-          minX = 0.0D;
-          minY = 0.0D;
-        }
-        return  new ProcessDiagramCanvas((int) maxX + 10, (int) maxY + 10,
-				(int) minX, (int) minY, imageType);
-    }
-    
-    @Override
-    protected void drawActivity(DefaultProcessDiagramCanvas processDiagramCanvas, BpmnModel bpmnModel, FlowNode flowNode, List<String> highLightedActivities, List<String> highLightedFlows, double scaleFactor){
-    	 ActivityDrawInstruction drawInstruction = (ActivityDrawInstruction)this.activityDrawInstructions.get(flowNode.getClass());
- 	    if (drawInstruction != null)
- 	    {
- 	      drawInstruction.draw(processDiagramCanvas, bpmnModel, flowNode);
-
- 	      boolean multiInstanceSequential = false; boolean multiInstanceParallel = false; boolean collapsed = false;
- 	      if (flowNode instanceof Activity) {
- 	        Activity activity = (Activity)flowNode;
- 	        MultiInstanceLoopCharacteristics multiInstanceLoopCharacteristics = activity.getLoopCharacteristics();
- 	        if (multiInstanceLoopCharacteristics != null) {
- 	          multiInstanceSequential = multiInstanceLoopCharacteristics.isSequential();
- 	          multiInstanceParallel = !(multiInstanceSequential);
- 	        }
-
- 	      }
-
- 	      GraphicInfo graphicInfo = bpmnModel.getGraphicInfo(flowNode.getId());
- 	      if (flowNode instanceof SubProcess)
- 	        collapsed = (graphicInfo.getExpanded() != null) && (!(graphicInfo.getExpanded().booleanValue()));
- 	      else if (flowNode instanceof CallActivity) {
- 	        collapsed = true;
- 	      }
-
- 	      if (scaleFactor == 1.0D)
-        {
-            processDiagramCanvas.drawActivityMarkers((int)graphicInfo.getX(), (int)graphicInfo.getY(), (int)graphicInfo.getWidth(), (int)graphicInfo.getHeight(), multiInstanceSequential, multiInstanceParallel, collapsed);
-        }
-
-            if (highLightedActivities != null && highLightedActivities.contains(flowNode.getId())) {
-                processDiagramCanvas.drawHighLight((int)graphicInfo.getX(), (int)graphicInfo.getY(), (int)graphicInfo.getWidth(), (int)graphicInfo.getHeight());
-            }
-
- 	    }
-
- 	    for (SequenceFlow sequenceFlow : flowNode.getOutgoingFlows()) {
- 	        boolean highLighted = false;
-            if (highLightedFlows != null) {
-                highLighted = highLightedFlows.contains(sequenceFlow.getId());
-            }
-
-              String defaultFlow = null;
-              if (flowNode instanceof Activity)
-                defaultFlow = ((Activity)flowNode).getDefaultFlow();
-              else if (flowNode instanceof Gateway) {
-                defaultFlow = ((Gateway)flowNode).getDefaultFlow();
-              }
-
-              boolean isDefault = false;
-              if ((defaultFlow != null) && (defaultFlow.equalsIgnoreCase(sequenceFlow.getId()))) {
-                isDefault = true;
-              }
-              boolean drawConditionalIndicator = (sequenceFlow.getConditionExpression() != null) && (!(flowNode instanceof Gateway));
-
-              String sourceRef = sequenceFlow.getSourceRef();
-              String targetRef = sequenceFlow.getTargetRef();
-              FlowElement sourceElement = bpmnModel.getFlowElement(sourceRef);
-              FlowElement targetElement = bpmnModel.getFlowElement(targetRef);
-              List graphicInfoList = bpmnModel.getFlowLocationGraphicInfo(sequenceFlow.getId());
-              if ((graphicInfoList != null) && (graphicInfoList.size() > 0)) {
-                graphicInfoList = connectionPerfectionizer(processDiagramCanvas, bpmnModel, sourceElement, targetElement, graphicInfoList);
-                int[] xPoints = new int[graphicInfoList.size()];
-                int[] yPoints = new int[graphicInfoList.size()];
-
-                for (int i = 1; i < graphicInfoList.size(); ++i) {
-                  GraphicInfo graphicInfo = (GraphicInfo)graphicInfoList.get(i);
-                  GraphicInfo previousGraphicInfo = (GraphicInfo)graphicInfoList.get(i - 1);
-
-                  if (i == 1) {
-                    xPoints[0] = (int)previousGraphicInfo.getX();
-                    yPoints[0] = (int)previousGraphicInfo.getY();
-                  }
-                  xPoints[i] = (int)graphicInfo.getX();
-                  yPoints[i] = (int)graphicInfo.getY();
-                }
-
-                processDiagramCanvas.drawSequenceflow(xPoints, yPoints, drawConditionalIndicator, isDefault, highLighted, scaleFactor);
-
-                GraphicInfo labelGraphicInfo = bpmnModel.getLabelGraphicInfo(sequenceFlow.getId());
-                if (labelGraphicInfo != null) {
-                  processDiagramCanvas.drawLabel(sequenceFlow.getName(), labelGraphicInfo, false);
-                }
-                else {
-                    GraphicInfo lineCenter = getLineCenter(graphicInfoList);
-                    processDiagramCanvas.drawLabel(sequenceFlow.getName(), lineCenter, false);
-                }
- 	      }
- 	}
-
-     if (flowNode instanceof FlowElementsContainer)
-       for (FlowElement nestedFlowElement : ((FlowElementsContainer)flowNode).getFlowElements())
-         if (nestedFlowElement instanceof FlowNode)
-           drawActivity(processDiagramCanvas, bpmnModel, (FlowNode)nestedFlowElement, highLightedActivities, highLightedFlows, scaleFactor);
-    	
-    }
-    
-}
+package com.highdatas.mdm.process.canvas;
+
+import org.activiti.bpmn.model.*;
+import org.activiti.bpmn.model.Process;
+import org.activiti.image.impl.DefaultProcessDiagramCanvas;
+import org.activiti.image.impl.DefaultProcessDiagramGenerator;
+
+import java.util.Iterator;
+import java.util.List;
+
+public class ProcessDiagramGenerator extends DefaultProcessDiagramGenerator{
+	
+   
+    @Override
+    protected ProcessDiagramCanvas generateProcessDiagram(BpmnModel bpmnModel, String imageType, List<String> highLightedActivities, List<String> highLightedFlows, String activityFontName, String labelFontName,String annotationFontName,  ClassLoader customClassLoader, double scaleFactor){
+      prepareBpmnModel(bpmnModel);
+
+      ProcessDiagramCanvas processDiagramCanvas = initProcessDiagramCanvas(bpmnModel, imageType, activityFontName, labelFontName, customClassLoader);
+
+      for (Pool pool : bpmnModel.getPools()) {
+        GraphicInfo graphicInfo = bpmnModel.getGraphicInfo(pool.getId());
+        processDiagramCanvas.drawPoolOrLane(pool.getName(), graphicInfo);
+      }
+      Process process;
+      for (Iterator<Process> iter = bpmnModel.getProcesses().iterator(); iter.hasNext(); ) {
+    	process = (Process)iter.next();
+        for (Lane lane : process.getLanes()) {
+          GraphicInfo graphicInfo = bpmnModel.getGraphicInfo(lane.getId());
+          processDiagramCanvas.drawPoolOrLane(lane.getName(), graphicInfo);
+        }
+
+      }
+
+        List<Process> processes = bpmnModel.getProcesses();
+        if (!processes.isEmpty()) {
+
+            for (FlowNode flowNode : ((Process) bpmnModel.getProcesses().get(0)).findFlowElementsOfType(FlowNode.class)) {
+                drawActivity(processDiagramCanvas, bpmnModel, flowNode, highLightedActivities, highLightedFlows, scaleFactor);
+            }
+        }
+      
+      for (Iterator<Process> iter = bpmnModel.getProcesses().iterator(); iter.hasNext(); ) { process = (Process)iter.next();
+        for (Artifact artifact : process.getArtifacts()) {
+          drawArtifact(processDiagramCanvas, bpmnModel, artifact);
+        }
+      }
+
+      return processDiagramCanvas;
+    }
+    
+    protected static ProcessDiagramCanvas initProcessDiagramCanvas(BpmnModel bpmnModel, String imageType, String activityFontName, String labelFontName, ClassLoader customClassLoader){
+    	double minX = 1.7976931348623157E+308D;
+        double maxX = 0.0D;
+        double minY = 1.7976931348623157E+308D;
+        double maxY = 0.0D;
+
+        for (Pool pool : bpmnModel.getPools()) {
+          GraphicInfo graphicInfo = bpmnModel.getGraphicInfo(pool.getId());
+          minX = graphicInfo.getX();
+          maxX = graphicInfo.getX() + graphicInfo.getWidth();
+          minY = graphicInfo.getY();
+          maxY = graphicInfo.getY() + graphicInfo.getHeight();
+        }
+
+        List<FlowNode> flowNodes = gatherAllFlowNodes(bpmnModel);
+        for (FlowNode flowNode : flowNodes)
+        {
+          GraphicInfo flowNodeGraphicInfo = bpmnModel.getGraphicInfo(flowNode.getId());
+
+          if (flowNodeGraphicInfo.getX() + flowNodeGraphicInfo.getWidth() > maxX) {
+            maxX = flowNodeGraphicInfo.getX() + flowNodeGraphicInfo.getWidth();
+          }
+          if (flowNodeGraphicInfo.getX() < minX) {
+            minX = flowNodeGraphicInfo.getX();
+          }
+
+          if (flowNodeGraphicInfo.getY() + flowNodeGraphicInfo.getHeight() > maxY) {
+            maxY = flowNodeGraphicInfo.getY() + flowNodeGraphicInfo.getHeight();
+          }
+          if (flowNodeGraphicInfo.getY() < minY) {
+            minY = flowNodeGraphicInfo.getY();
+          }
+
+          for (SequenceFlow sequenceFlow : flowNode.getOutgoingFlows()) {
+            List<GraphicInfo> graphicInfoList = bpmnModel.getFlowLocationGraphicInfo(sequenceFlow.getId());
+            if (graphicInfoList != null) {
+              for (GraphicInfo graphicInfo : graphicInfoList)
+              {
+                if (graphicInfo.getX() > maxX) {
+                  maxX = graphicInfo.getX();
+                }
+                if (graphicInfo.getX() < minX) {
+                  minX = graphicInfo.getX();
+                }
+
+                if (graphicInfo.getY() > maxY) {
+                  maxY = graphicInfo.getY();
+                }
+                if (graphicInfo.getY() < minY) {
+                  minY = graphicInfo.getY();
+                }
+              }
+            }
+          }
+        }
+        GraphicInfo graphicInfo;
+        List<Artifact> artifacts = gatherAllArtifacts(bpmnModel);
+        for (Artifact artifact : artifacts)
+        {
+          GraphicInfo artifactGraphicInfo = bpmnModel.getGraphicInfo(artifact.getId());
+
+          if (artifactGraphicInfo != null)
+          {
+            if (artifactGraphicInfo.getX() + artifactGraphicInfo.getWidth() > maxX) {
+              maxX = artifactGraphicInfo.getX() + artifactGraphicInfo.getWidth();
+            }
+            if (artifactGraphicInfo.getX() < minX) {
+              minX = artifactGraphicInfo.getX();
+            }
+
+            if (artifactGraphicInfo.getY() + artifactGraphicInfo.getHeight() > maxY) {
+              maxY = artifactGraphicInfo.getY() + artifactGraphicInfo.getHeight();
+            }
+            if (artifactGraphicInfo.getY() < minY) {
+              minY = artifactGraphicInfo.getY();
+            }
+          }
+
+          List<GraphicInfo> graphicInfoList = bpmnModel.getFlowLocationGraphicInfo(artifact.getId());
+        
+          if (graphicInfoList != null) {
+        	
+            for (Iterator<GraphicInfo> iterator = graphicInfoList.iterator(); iterator.hasNext(); ) { graphicInfo = (GraphicInfo)iterator.next();
+
+              if (graphicInfo.getX() > maxX) {
+                maxX = graphicInfo.getX();
+              }
+              if (graphicInfo.getX() < minX) {
+                minX = graphicInfo.getX();
+              }
+
+              if (graphicInfo.getY() > maxY) {
+                maxY = graphicInfo.getY();
+              }
+              if (graphicInfo.getY() < minY) {
+                minY = graphicInfo.getY();
+              }
+            }
+          }
+
+        }
+
+       
+        int nrOfLanes = 0;
+        for (Process process : bpmnModel.getProcesses()) {
+          for (Lane l : process.getLanes())
+          {
+            ++nrOfLanes;
+
+            graphicInfo = bpmnModel.getGraphicInfo(l.getId());
+
+            if (graphicInfo.getX() + graphicInfo.getWidth() > maxX) {
+              maxX = graphicInfo.getX() + graphicInfo.getWidth();
+            }
+            if (graphicInfo.getX() < minX) {
+              minX = graphicInfo.getX();
+            }
+
+            if (graphicInfo.getY() + graphicInfo.getHeight() > maxY) {
+              maxY = graphicInfo.getY() + graphicInfo.getHeight();
+            }
+            if (graphicInfo.getY() < minY) {
+              minY = graphicInfo.getY();
+            }
+          }
+
+        }
+
+        if ((flowNodes.isEmpty()) && (bpmnModel.getPools().isEmpty()) && (nrOfLanes == 0))
+        {
+          minX = 0.0D;
+          minY = 0.0D;
+        }
+        return  new ProcessDiagramCanvas((int) maxX + 10, (int) maxY + 10,
+				(int) minX, (int) minY, imageType);
+    }
+    
+    @Override
+    protected void drawActivity(DefaultProcessDiagramCanvas processDiagramCanvas, BpmnModel bpmnModel, FlowNode flowNode, List<String> highLightedActivities, List<String> highLightedFlows, double scaleFactor){
+    	 ActivityDrawInstruction drawInstruction = (ActivityDrawInstruction)this.activityDrawInstructions.get(flowNode.getClass());
+ 	    if (drawInstruction != null)
+ 	    {
+ 	      drawInstruction.draw(processDiagramCanvas, bpmnModel, flowNode);
+
+ 	      boolean multiInstanceSequential = false; boolean multiInstanceParallel = false; boolean collapsed = false;
+ 	      if (flowNode instanceof Activity) {
+ 	        Activity activity = (Activity)flowNode;
+ 	        MultiInstanceLoopCharacteristics multiInstanceLoopCharacteristics = activity.getLoopCharacteristics();
+ 	        if (multiInstanceLoopCharacteristics != null) {
+ 	          multiInstanceSequential = multiInstanceLoopCharacteristics.isSequential();
+ 	          multiInstanceParallel = !(multiInstanceSequential);
+ 	        }
+
+ 	      }
+
+ 	      GraphicInfo graphicInfo = bpmnModel.getGraphicInfo(flowNode.getId());
+ 	      if (flowNode instanceof SubProcess)
+ 	        collapsed = (graphicInfo.getExpanded() != null) && (!(graphicInfo.getExpanded().booleanValue()));
+ 	      else if (flowNode instanceof CallActivity) {
+ 	        collapsed = true;
+ 	      }
+
+ 	      if (scaleFactor == 1.0D)
+        {
+            processDiagramCanvas.drawActivityMarkers((int)graphicInfo.getX(), (int)graphicInfo.getY(), (int)graphicInfo.getWidth(), (int)graphicInfo.getHeight(), multiInstanceSequential, multiInstanceParallel, collapsed);
+        }
+
+            if (highLightedActivities != null && highLightedActivities.contains(flowNode.getId())) {
+                processDiagramCanvas.drawHighLight((int)graphicInfo.getX(), (int)graphicInfo.getY(), (int)graphicInfo.getWidth(), (int)graphicInfo.getHeight());
+            }
+
+ 	    }
+
+ 	    for (SequenceFlow sequenceFlow : flowNode.getOutgoingFlows()) {
+ 	        boolean highLighted = false;
+            if (highLightedFlows != null) {
+                highLighted = highLightedFlows.contains(sequenceFlow.getId());
+            }
+
+              String defaultFlow = null;
+              if (flowNode instanceof Activity)
+                defaultFlow = ((Activity)flowNode).getDefaultFlow();
+              else if (flowNode instanceof Gateway) {
+                defaultFlow = ((Gateway)flowNode).getDefaultFlow();
+              }
+
+              boolean isDefault = false;
+              if ((defaultFlow != null) && (defaultFlow.equalsIgnoreCase(sequenceFlow.getId()))) {
+                isDefault = true;
+              }
+              boolean drawConditionalIndicator = (sequenceFlow.getConditionExpression() != null) && (!(flowNode instanceof Gateway));
+
+              String sourceRef = sequenceFlow.getSourceRef();
+              String targetRef = sequenceFlow.getTargetRef();
+              FlowElement sourceElement = bpmnModel.getFlowElement(sourceRef);
+              FlowElement targetElement = bpmnModel.getFlowElement(targetRef);
+              List graphicInfoList = bpmnModel.getFlowLocationGraphicInfo(sequenceFlow.getId());
+              if ((graphicInfoList != null) && (graphicInfoList.size() > 0)) {
+                graphicInfoList = connectionPerfectionizer(processDiagramCanvas, bpmnModel, sourceElement, targetElement, graphicInfoList);
+                int[] xPoints = new int[graphicInfoList.size()];
+                int[] yPoints = new int[graphicInfoList.size()];
+
+                for (int i = 1; i < graphicInfoList.size(); ++i) {
+                  GraphicInfo graphicInfo = (GraphicInfo)graphicInfoList.get(i);
+                  GraphicInfo previousGraphicInfo = (GraphicInfo)graphicInfoList.get(i - 1);
+
+                  if (i == 1) {
+                    xPoints[0] = (int)previousGraphicInfo.getX();
+                    yPoints[0] = (int)previousGraphicInfo.getY();
+                  }
+                  xPoints[i] = (int)graphicInfo.getX();
+                  yPoints[i] = (int)graphicInfo.getY();
+                }
+
+                processDiagramCanvas.drawSequenceflow(xPoints, yPoints, drawConditionalIndicator, isDefault, highLighted, scaleFactor);
+
+                GraphicInfo labelGraphicInfo = bpmnModel.getLabelGraphicInfo(sequenceFlow.getId());
+                if (labelGraphicInfo != null) {
+                  processDiagramCanvas.drawLabel(sequenceFlow.getName(), labelGraphicInfo, false);
+                }
+                else {
+                    GraphicInfo lineCenter = getLineCenter(graphicInfoList);
+                    processDiagramCanvas.drawLabel(sequenceFlow.getName(), lineCenter, false);
+                }
+ 	      }
+ 	}
+
+     if (flowNode instanceof FlowElementsContainer)
+       for (FlowElement nestedFlowElement : ((FlowElementsContainer)flowNode).getFlowElements())
+         if (nestedFlowElement instanceof FlowNode)
+           drawActivity(processDiagramCanvas, bpmnModel, (FlowNode)nestedFlowElement, highLightedActivities, highLightedFlows, scaleFactor);
+    	
+    }
+    
+}

--
Gitblit v1.8.0