feat(BpmnRenderer): clean up flow markers

This fixes flow marker strokeDasharray being used on non browser SVG
viewers.
This commit is contained in:
Nico Rehwaldt 2014-05-28 22:48:11 +02:00
parent 97d1adeb8c
commit 281de42998
3 changed files with 289 additions and 78 deletions

View File

@ -48,104 +48,96 @@ function BpmnRenderer(events, styles, bpmnRegistry, pathMap) {
addMarker('sequenceflow-end',
paper
.path('M 0 0 L 10 5 L 0 10 Z')
.path('M 1 5 L 11 10 L 1 15 Z')
.attr({
fill: 'black',
stroke: 'none'
strokeWidth: 1,
strokeLinecap: 'round',
strokeDasharray: 0
})
.marker(0, 0, 10, 10, 10, 5)
.marker(0, 0, 20, 20, 11, 10)
.attr({
markerWidth: 6,
markerHeight: 6,
orient: 'auto',
overflow: 'visible'
markerWidth: 10,
markerHeight: 10
}));
addMarker('messageflow-start',
paper
.circle(5, 5, 5)
.circle(6, 6, 5)
.attr({
fill: 'white',
stroke: 'black',
strokeWidth: 1,
strokeDasharray: '1,0'
strokeDasharray: 0
})
.marker(0, 0, 10, 10, 5, 5)
.marker(0, 0, 20, 20, 6, 6)
.attr({
markerWidth: 12,
markerHeight: 12,
orient: 'auto',
overflow: 'visible'
markerWidth: 20,
markerHeight: 20
}));
addMarker('messageflow-end',
paper
.path('M 0 0 L 10 5 L 0 10 Z')
.path('M 1 5 L 11 10 L 1 15 Z')
.attr({
stroke: 'black',
fill: 'white',
strokeWidth: 1,
strokeLinecap: 'round',
strokeDasharray: '1,0'
strokeDasharray: 0
})
.marker(0, 0, 10, 10, 10, 5)
.marker(0, 0, 20, 20, 11, 10)
.attr({
markerWidth: 12,
markerHeight: 12,
orient: 'auto',
overflow: 'visible'
markerWidth: 20,
markerHeight: 20
}));
addMarker('data-association-end',
paper
.path('M 0 0 L 10 5 L 0 10')
.path('M 1 5 L 11 10 L 1 15')
.attr({
fill: 'white',
stroke: 'black'
})
.marker(0, 0, 10, 10, 10, 5)
.attr({
markerWidth: 8,
markerHeight: 6,
orient: 'auto',
overflow: 'visible',
stroke: 'black',
strokeWidth: 1,
strokeDasharray: '1,0'
strokeLinecap: 'round',
strokeDasharray: 0
})
.marker(0, 0, 20, 20, 11, 10)
.attr({
markerWidth: 10,
markerHeight: 10
}));
addMarker('conditional-flow-marker',
paper
.path('M 0,0 7.089123,3.1832974 0.00383366,6.1129516 -7.0814464,3.1832966 z')
.path('M 0 10 L 8 6 L 16 10 L 8 14 Z')
.attr({
fill: 'white',
stroke: 'black'
stroke: 'black',
strokeWidth: 1,
strokeLinecap: 'round',
strokeDasharray: 0
})
.marker(0, 0, 15, 15, -8, 3)
.marker(0, 0, 20, 20, -1, 10)
.attr({
markerWidth: 10,
markerHeight: 10,
orient: 'auto',
overflow: 'visible',
strokeWidth: 1,
strokeDasharray: '1,0'
markerHeight: 10
}));
addMarker('conditional-default-flow-marker',
paper
.path('M 3,0 10,11')
.path('M 1 4 L 5 16')
.attr({
fill: 'black',
stroke: 'black'
})
.marker(0, 0, 10, 10, -6, 5.5)
.attr({
markerWidth: 7,
markerHeight: 7,
orient: 'auto',
overflow: 'visible',
stroke: 'black',
strokeWidth: 1,
strokeDasharray: '1,0',
strokeLinecap: 'round'
strokeLinecap: 'round',
strokeDasharray: 0
})
.marker(0, 0, 20, 20, -5, 10)
.attr({
markerWidth: 10,
markerHeight: 10
}));
}
@ -219,7 +211,7 @@ function BpmnRenderer(events, styles, bpmnRegistry, pathMap) {
attrs = computeStyle(attrs, [ 'no-fill' ], {
stroke: 'black',
strokeWidth: 2,
fill: 'white'
fill: 'none'
});
return p.polyline(points).attr(attrs);
@ -1061,25 +1053,24 @@ function BpmnRenderer(events, styles, bpmnRegistry, pathMap) {
return path;
},
'bpmn:Association': function(p, data) {
'bpmn:Association': function(p, data, attrs) {
attrs = _.extend({
strokeDasharray: '1,6',
strokeLinecap: 'round'
}, attrs || {});
// TODO(nre): style according to directed state
return drawLine(p, data.waypoints, {
strokeDasharray: '3,3'
});
return drawLine(p, data.waypoints, attrs);
},
'bpmn:DataInputAssociation': function(p, data) {
return drawLine(p, data.waypoints, {
strokeDasharray: '2,4',
markerEnd: marker('data-association-end'),
fill: 'none'
return renderer('bpmn:Association')(p, data, {
markerEnd: marker('data-association-end')
});
},
'bpmn:DataOutputAssociation': function(p, data) {
return drawLine(p, data.waypoints, {
strokeDasharray: '2,4',
markerEnd: marker('data-association-end'),
fill: 'none'
return renderer('bpmn:Association')(p, data, {
markerEnd: marker('data-association-end')
});
},
'bpmn:MessageFlow': function(p, data) {
@ -1183,14 +1174,7 @@ function BpmnRenderer(events, styles, bpmnRegistry, pathMap) {
var dataStore = drawPath(p, DATA_STORE_PATH, {
strokeWidth: 2,
fill: 'black',
strokeMiterlimit: 4,
'stroke-linejoin': 'miter',
strokeLinecap: 'butt',
'stroke-opacity': 1,
stroke: 'rgb(34, 34, 34)',
strokeDasharray: 'none',
'fill-opacity': 0
fill: 'white'
});
return dataStore;
@ -1207,7 +1191,7 @@ function BpmnRenderer(events, styles, bpmnRegistry, pathMap) {
var inner = drawCircle(p, data.width, data.height, INNER_OUTER_DIST, cancel ? null : {
strokeLinecap: 'round',
strokeDasharray: '6'
strokeDasharray: '7,6'
});
renderEventContent(data, p);
@ -1254,17 +1238,18 @@ function BpmnRenderer(events, styles, bpmnRegistry, pathMap) {
my: (data.height - 15) / data.height
}
});
var pmm = drawPath(p, subProcessPath);
pmm.attr('');
drawPath(p, subProcessPath);
},
'SubProcessMarker': function(p, data) {
var markerRect = drawRect(p, 14, 14, 0);
// Process marker is placed in the middle of the box
// therefore fixed values can be used here
markerRect.transform('translate(' + (data.width / 2 - 7.5) + ',' + (data.height - 20) + ')').attr({
var markerRect = drawRect(p, 14, 14, 0, {
strokeWidth: 1
});
// Process marker is placed in the middle of the box
// therefore fixed values can be used here
markerRect.transform('translate(' + (data.width / 2 - 7.5) + ',' + (data.height - 20) + ')');
var subProcessPath = pathMap.getScaledPath('MARKER_SUB_PROCESS', {
xScaleFactor: 1.5,
yScaleFactor: 1.5,
@ -1275,6 +1260,7 @@ function BpmnRenderer(events, styles, bpmnRegistry, pathMap) {
my: (data.height - 20) / data.height
}
});
drawPath(p, subProcessPath);
},
'ParallelMarker': function(p, data, position) {

213
test/fixtures/bpmn/flow-markers.bpmn vendored Normal file
View File

@ -0,0 +1,213 @@
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" xmlns:signavio="http://www.signavio.com" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd" id="sid-99115ee8-44b2-451c-8a03-e518d24c5283" exporter="Signavio Process Editor, http://www.signavio.com" exporterVersion="8.0.0" targetNamespace="http://www.signavio.com/bpmn20">
<dataStore id="sid-5dd31c58-1f9e-43bc-90c3-b648ee304dfe" isUnlimited="false"/>
<message id="sid-596C4565-5945-4525-9133-FC6BDD3011BA"/>
<collaboration id="sid-81a32ec0-824a-4054-a133-cae53290b96a">
<participant id="sid-E9A22478-7DA8-423A-BE30-D589EFC64E75" name="external"/>
<participant id="sid-CA537EF9-7829-498E-8058-DEB94EB54D25" name="other external"/>
<participant id="sid-8017E317-C1C3-44D1-BE7E-91FC52186A3A" name="look inside" processRef="sid-BB96F634-D3B8-401E-BDFF-8DCC81DD1C7F"/>
<messageFlow id="sid-CF6AC14E-C673-4AB8-8B75-55C8B8644CC2" sourceRef="sid-CA537EF9-7829-498E-8058-DEB94EB54D25" targetRef="sid-8017E317-C1C3-44D1-BE7E-91FC52186A3A"/>
<messageFlow id="sid-76F791BC-0884-4991-ADF8-64A05DB036D1" messageRef="sid-596C4565-5945-4525-9133-FC6BDD3011BA" sourceRef="sid-E9A22478-7DA8-423A-BE30-D589EFC64E75" targetRef="sid-8017E317-C1C3-44D1-BE7E-91FC52186A3A"/>
<messageFlow id="sid-30219B81-5753-4B9C-A8B5-CBBFD3B115A1" messageRef="sid-596C4565-5945-4525-9133-FC6BDD3011BA" sourceRef="sid-4E41E3B4-66AB-492E-AB51-C6499800D240" targetRef="sid-E9A22478-7DA8-423A-BE30-D589EFC64E75"/>
<messageFlow id="sid-C1F65713-8541-4308-9092-6D5AAB29DE01" sourceRef="sid-E9A22478-7DA8-423A-BE30-D589EFC64E75" targetRef="sid-4E41E3B4-66AB-492E-AB51-C6499800D240"/>
<messageFlow id="sid-7C0D861C-CA43-4B5E-8764-1D759AF94D0C" sourceRef="sid-8017E317-C1C3-44D1-BE7E-91FC52186A3A" targetRef="sid-E9A22478-7DA8-423A-BE30-D589EFC64E75"/>
</collaboration>
<process id="sid-BB96F634-D3B8-401E-BDFF-8DCC81DD1C7F" name="look inside" isExecutable="false">
<laneSet id="sid-d4f6cbd0-6af0-4d3f-afcd-a35d36d2e262">
<lane id="sid-C01CCEF6-E378-4B05-87B4-A8E73B9E33AC">
<flowNodeRef>sid-37185958-C044-425D-9B8C-DB8DEE274097</flowNodeRef>
<flowNodeRef>sid-B681960F-8C8E-4E3E-8310-0DF3126FD429</flowNodeRef>
<flowNodeRef>sid-5616CC3E-C211-4BE0-A0FB-DED35046FA90</flowNodeRef>
<flowNodeRef>sid-4E41E3B4-66AB-492E-AB51-C6499800D240</flowNodeRef>
</lane>
</laneSet>
<dataObject id="sid-ab92b8a4-0f79-4a46-b388-f74d469db559"/>
<task id="sid-37185958-C044-425D-9B8C-DB8DEE274097">
<outgoing>sid-69CE7F49-8ECD-45B6-9BBD-327796B854CE</outgoing>
<outgoing>sid-7282B370-204F-44BE-AACA-B33047993F81</outgoing>
<ioSpecification id="sid-b06e80c1-e794-4469-a63f-d21d510b32bd">
<dataOutput id="sid-33abed7e-c0d1-4ccb-a95a-ae5e61faba30"/>
<inputSet id="sid-fd64d367-a3a9-4546-b3a7-983b5e2c517f" name="DefaultInputSet">
<outputSetRefs>sid-d548519b-5784-4e5b-9be9-7a9e082ae9b4</outputSetRefs>
<outputSetRefs>sid-d548519b-5784-4e5b-9be9-7a9e082ae9b4</outputSetRefs>
</inputSet>
<outputSet id="sid-d548519b-5784-4e5b-9be9-7a9e082ae9b4" name="DefaultOutputSet">
<dataOutputRefs>sid-33abed7e-c0d1-4ccb-a95a-ae5e61faba30</dataOutputRefs>
<inputSetRefs>sid-fd64d367-a3a9-4546-b3a7-983b5e2c517f</inputSetRefs>
<inputSetRefs>sid-fd64d367-a3a9-4546-b3a7-983b5e2c517f</inputSetRefs>
</outputSet>
</ioSpecification>
<dataInputAssociation id="sid-6B33BF63-4DC8-4EDB-B7C6-0030EEFFA3EB">
<sourceRef>sid-2FB8A264-C197-4769-A020-02F3654875A0</sourceRef>
</dataInputAssociation>
<dataOutputAssociation id="sid-F26F0F24-45C1-44D2-81FF-467833EFE8CF">
<sourceRef>sid-33abed7e-c0d1-4ccb-a95a-ae5e61faba30</sourceRef>
<targetRef>sid-F5232AB9-7F31-43EE-B0EC-A74EB8CD96DE</targetRef>
</dataOutputAssociation>
</task>
<exclusiveGateway id="sid-B681960F-8C8E-4E3E-8310-0DF3126FD429" gatewayDirection="Diverging" default="sid-6DCC22DB-1B44-4DE7-A9F5-60C2070B73CC">
<incoming>sid-69CE7F49-8ECD-45B6-9BBD-327796B854CE</incoming>
<outgoing>sid-6DCC22DB-1B44-4DE7-A9F5-60C2070B73CC</outgoing>
<outgoing>sid-CC60949F-0A88-4902-9011-0FE6AA355254</outgoing>
</exclusiveGateway>
<intermediateThrowEvent id="sid-5616CC3E-C211-4BE0-A0FB-DED35046FA90">
<incoming>sid-6DCC22DB-1B44-4DE7-A9F5-60C2070B73CC</incoming>
<incoming>sid-7282B370-204F-44BE-AACA-B33047993F81</incoming>
</intermediateThrowEvent>
<serviceTask id="sid-4E41E3B4-66AB-492E-AB51-C6499800D240" implementation="webService">
<incoming>sid-CC60949F-0A88-4902-9011-0FE6AA355254</incoming>
<ioSpecification id="sid-9d05d9fc-66b0-4657-b296-d75767622b00">
<dataInput id="sid-d17816af-06d3-4ecd-b051-7b9d4c6ddcc2"/>
<inputSet id="sid-9b67a3af-0e23-4f34-9f75-20cd544c9bad" name="DefaultInputSet">
<dataInputRefs>sid-d17816af-06d3-4ecd-b051-7b9d4c6ddcc2</dataInputRefs>
<outputSetRefs>sid-8f07615b-9240-4b27-b38e-a76869b913dc</outputSetRefs>
<outputSetRefs>sid-8f07615b-9240-4b27-b38e-a76869b913dc</outputSetRefs>
</inputSet>
<outputSet id="sid-8f07615b-9240-4b27-b38e-a76869b913dc" name="DefaultOutputSet">
<inputSetRefs>sid-9b67a3af-0e23-4f34-9f75-20cd544c9bad</inputSetRefs>
<inputSetRefs>sid-9b67a3af-0e23-4f34-9f75-20cd544c9bad</inputSetRefs>
</outputSet>
</ioSpecification>
<dataInputAssociation id="sid-7BBE0A25-CC78-4CCB-A0B4-E5EE77D9A65E">
<sourceRef>sid-F5232AB9-7F31-43EE-B0EC-A74EB8CD96DE</sourceRef>
<targetRef>sid-d17816af-06d3-4ecd-b051-7b9d4c6ddcc2</targetRef>
</dataInputAssociation>
</serviceTask>
<sequenceFlow id="sid-6DCC22DB-1B44-4DE7-A9F5-60C2070B73CC" sourceRef="sid-B681960F-8C8E-4E3E-8310-0DF3126FD429" targetRef="sid-5616CC3E-C211-4BE0-A0FB-DED35046FA90"/>
<sequenceFlow id="sid-69CE7F49-8ECD-45B6-9BBD-327796B854CE" sourceRef="sid-37185958-C044-425D-9B8C-DB8DEE274097" targetRef="sid-B681960F-8C8E-4E3E-8310-0DF3126FD429"/>
<sequenceFlow id="sid-7282B370-204F-44BE-AACA-B33047993F81" sourceRef="sid-37185958-C044-425D-9B8C-DB8DEE274097" targetRef="sid-5616CC3E-C211-4BE0-A0FB-DED35046FA90">
<conditionExpression xsi:type="tFormalExpression">foo</conditionExpression>
</sequenceFlow>
<sequenceFlow id="sid-CC60949F-0A88-4902-9011-0FE6AA355254" sourceRef="sid-B681960F-8C8E-4E3E-8310-0DF3126FD429" targetRef="sid-4E41E3B4-66AB-492E-AB51-C6499800D240">
<conditionExpression xsi:type="tFormalExpression">foo</conditionExpression>
</sequenceFlow>
<dataObjectReference id="sid-F5232AB9-7F31-43EE-B0EC-A74EB8CD96DE" dataObjectRef="sid-ab92b8a4-0f79-4a46-b388-f74d469db559"/>
<dataStoreReference id="sid-2FB8A264-C197-4769-A020-02F3654875A0" dataStoreRef="sid-5dd31c58-1f9e-43bc-90c3-b648ee304dfe"/>
<association id="sid-B40587A8-93DA-494D-AA64-8A7B60B65202" sourceRef="sid-EEC70799-8E21-411A-9425-BD1DDA92FE0A" targetRef="sid-C01CCEF6-E378-4B05-87B4-A8E73B9E33AC"/>
<association id="sid-92AFFC7A-EA9B-4A5F-892F-311C0132A7A5" sourceRef="sid-869F3923-E7C8-4307-B370-58BD6016C028" targetRef="sid-B681960F-8C8E-4E3E-8310-0DF3126FD429"/>
<textAnnotation id="sid-869F3923-E7C8-4307-B370-58BD6016C028">
<text>A gateway</text>
</textAnnotation>
<textAnnotation id="sid-EEC70799-8E21-411A-9425-BD1DDA92FE0A">
<text>A pool</text>
</textAnnotation>
</process>
<bpmndi:BPMNDiagram id="sid-e9e4b544-81bf-4303-bd45-e45c39794c2c">
<bpmndi:BPMNPlane id="sid-71fa1645-e6f2-49d2-a936-c4d56b7593bc" bpmnElement="sid-81a32ec0-824a-4054-a133-cae53290b96a">
<bpmndi:BPMNShape id="sid-E9A22478-7DA8-423A-BE30-D589EFC64E75_gui" bpmnElement="sid-E9A22478-7DA8-423A-BE30-D589EFC64E75" isHorizontal="true">
<omgdc:Bounds height="60.0" width="500.0" x="270.0" y="652.0"/>
<bpmndi:BPMNLabel labelStyle="sid-b3b67b2b-3b4c-4256-b506-376edded1e68">
<omgdc:Bounds height="20.0" width="81.42859" x="479.2857" y="669.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-CA537EF9-7829-498E-8058-DEB94EB54D25_gui" bpmnElement="sid-CA537EF9-7829-498E-8058-DEB94EB54D25" isHorizontal="true">
<omgdc:Bounds height="60.0" width="500.0" x="915.0" y="202.0"/>
<bpmndi:BPMNLabel labelStyle="sid-b3b67b2b-3b4c-4256-b506-376edded1e68">
<omgdc:Bounds height="20.0" width="142.85715" x="1093.5714" y="219.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-8017E317-C1C3-44D1-BE7E-91FC52186A3A_gui" bpmnElement="sid-8017E317-C1C3-44D1-BE7E-91FC52186A3A" isHorizontal="true">
<omgdc:Bounds height="361.0" width="600.0" x="165.0" y="91.0"/>
<bpmndi:BPMNLabel labelStyle="sid-b3b67b2b-3b4c-4256-b506-376edded1e68">
<omgdc:Bounds height="63.428574" width="12.0" x="170.0" y="239.7857"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-C01CCEF6-E378-4B05-87B4-A8E73B9E33AC_gui" bpmnElement="sid-C01CCEF6-E378-4B05-87B4-A8E73B9E33AC" isHorizontal="true">
<omgdc:Bounds height="361.0" width="570.0" x="195.0" y="91.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-37185958-C044-425D-9B8C-DB8DEE274097_gui" bpmnElement="sid-37185958-C044-425D-9B8C-DB8DEE274097">
<omgdc:Bounds height="80.0" width="100.0" x="240.0" y="247.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-B681960F-8C8E-4E3E-8310-0DF3126FD429_gui" bpmnElement="sid-B681960F-8C8E-4E3E-8310-0DF3126FD429" isMarkerVisible="true">
<omgdc:Bounds height="40.0" width="40.0" x="405.0" y="267.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-5616CC3E-C211-4BE0-A0FB-DED35046FA90_gui" bpmnElement="sid-5616CC3E-C211-4BE0-A0FB-DED35046FA90">
<omgdc:Bounds height="30.0" width="30.0" x="410.0" y="372.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-4E41E3B4-66AB-492E-AB51-C6499800D240_gui" bpmnElement="sid-4E41E3B4-66AB-492E-AB51-C6499800D240">
<omgdc:Bounds height="80.0" width="100.0" x="612.5" y="247.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-F5232AB9-7F31-43EE-B0EC-A74EB8CD96DE_gui" bpmnElement="sid-F5232AB9-7F31-43EE-B0EC-A74EB8CD96DE">
<omgdc:Bounds height="62.0" width="55.0" x="452.0" y="160.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-2FB8A264-C197-4769-A020-02F3654875A0_gui" bpmnElement="sid-2FB8A264-C197-4769-A020-02F3654875A0">
<omgdc:Bounds height="60.173" width="62.001" x="225.0" y="121.827"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-869F3923-E7C8-4307-B370-58BD6016C028_gui" bpmnElement="sid-869F3923-E7C8-4307-B370-58BD6016C028">
<omgdc:Bounds height="50.0" width="100.0" x="510.0" y="314.0"/>
<bpmndi:BPMNLabel labelStyle="sid-48484886-e724-441f-a0c0-ee5505fe4c68">
<omgdc:Bounds height="12.0" width="62.571426" x="514.0" y="330.5"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-EEC70799-8E21-411A-9425-BD1DDA92FE0A_gui" bpmnElement="sid-EEC70799-8E21-411A-9425-BD1DDA92FE0A">
<omgdc:Bounds height="50.0" width="100.0" x="885.0" y="427.0"/>
<bpmndi:BPMNLabel labelStyle="sid-48484886-e724-441f-a0c0-ee5505fe4c68">
<omgdc:Bounds height="12.0" width="38.57143" x="889.0" y="443.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="sid-7BBE0A25-CC78-4CCB-A0B4-E5EE77D9A65E_gui" bpmnElement="sid-7BBE0A25-CC78-4CCB-A0B4-E5EE77D9A65E">
<omgdi:waypoint xsi:type="omgdc:Point" x="507.0" y="205.42622"/>
<omgdi:waypoint xsi:type="omgdc:Point" x="612.5" y="260.77048"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="sid-69CE7F49-8ECD-45B6-9BBD-327796B854CE_gui" bpmnElement="sid-69CE7F49-8ECD-45B6-9BBD-327796B854CE">
<omgdi:waypoint xsi:type="omgdc:Point" x="340.0" y="287.1845"/>
<omgdi:waypoint xsi:type="omgdc:Point" x="405.0" y="287.42435"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="sid-CF6AC14E-C673-4AB8-8B75-55C8B8644CC2_gui" bpmnElement="sid-CF6AC14E-C673-4AB8-8B75-55C8B8644CC2">
<omgdi:waypoint xsi:type="omgdc:Point" x="915.0" y="232.0"/>
<omgdi:waypoint xsi:type="omgdc:Point" x="765.0" y="232.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="sid-76F791BC-0884-4991-ADF8-64A05DB036D1_gui" bpmnElement="sid-76F791BC-0884-4991-ADF8-64A05DB036D1">
<omgdi:waypoint xsi:type="omgdc:Point" x="301.0" y="652.0"/>
<omgdi:waypoint xsi:type="omgdc:Point" x="301.0" y="452.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="sid-F26F0F24-45C1-44D2-81FF-467833EFE8CF_gui" bpmnElement="sid-F26F0F24-45C1-44D2-81FF-467833EFE8CF">
<omgdi:waypoint xsi:type="omgdc:Point" x="340.0" y="261.6702"/>
<omgdi:waypoint xsi:type="omgdc:Point" x="452.0" y="204.9314"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="sid-30219B81-5753-4B9C-A8B5-CBBFD3B115A1_gui" bpmnElement="sid-30219B81-5753-4B9C-A8B5-CBBFD3B115A1">
<omgdi:waypoint xsi:type="omgdc:Point" x="679.1667" y="327.0"/>
<omgdi:waypoint xsi:type="omgdc:Point" x="679.1667" y="652.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="sid-C1F65713-8541-4308-9092-6D5AAB29DE01_gui" bpmnElement="sid-C1F65713-8541-4308-9092-6D5AAB29DE01">
<omgdi:waypoint xsi:type="omgdc:Point" x="645.8333" y="652.0"/>
<omgdi:waypoint xsi:type="omgdc:Point" x="645.8333" y="327.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="sid-6B33BF63-4DC8-4EDB-B7C6-0030EEFFA3EB_gui" bpmnElement="sid-6B33BF63-4DC8-4EDB-B7C6-0030EEFFA3EB">
<omgdi:waypoint xsi:type="omgdc:Point" x="263.2746" y="182.0"/>
<omgdi:waypoint xsi:type="omgdc:Point" x="279.81888" y="247.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="sid-7282B370-204F-44BE-AACA-B33047993F81_gui" bpmnElement="sid-7282B370-204F-44BE-AACA-B33047993F81">
<omgdi:waypoint xsi:type="omgdc:Point" x="290.0" y="327.0"/>
<omgdi:waypoint xsi:type="omgdc:Point" x="290.0" y="387.0"/>
<omgdi:waypoint xsi:type="omgdc:Point" x="410.0" y="387.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="sid-7C0D861C-CA43-4B5E-8764-1D759AF94D0C_gui" bpmnElement="sid-7C0D861C-CA43-4B5E-8764-1D759AF94D0C">
<omgdi:waypoint xsi:type="omgdc:Point" x="335.0" y="452.0"/>
<omgdi:waypoint xsi:type="omgdc:Point" x="335.0" y="652.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="sid-92AFFC7A-EA9B-4A5F-892F-311C0132A7A5_gui" bpmnElement="sid-92AFFC7A-EA9B-4A5F-892F-311C0132A7A5">
<omgdi:waypoint xsi:type="omgdc:Point" x="510.0" y="337.9035"/>
<omgdi:waypoint xsi:type="omgdc:Point" x="445.0" y="299.1316"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="sid-6DCC22DB-1B44-4DE7-A9F5-60C2070B73CC_gui" bpmnElement="sid-6DCC22DB-1B44-4DE7-A9F5-60C2070B73CC">
<omgdi:waypoint xsi:type="omgdc:Point" x="425.0" y="307.0"/>
<omgdi:waypoint xsi:type="omgdc:Point" x="425.0" y="372.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="sid-B40587A8-93DA-494D-AA64-8A7B60B65202_gui" bpmnElement="sid-B40587A8-93DA-494D-AA64-8A7B60B65202">
<omgdi:waypoint xsi:type="omgdc:Point" x="885.0" y="450.5579"/>
<omgdi:waypoint xsi:type="omgdc:Point" x="765.0" y="397.5037"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="sid-CC60949F-0A88-4902-9011-0FE6AA355254_gui" bpmnElement="sid-CC60949F-0A88-4902-9011-0FE6AA355254">
<omgdi:waypoint xsi:type="omgdc:Point" x="445.0" y="287.45886"/>
<omgdi:waypoint xsi:type="omgdc:Point" x="612.5" y="287.1055"/>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
<bpmndi:BPMNLabelStyle id="sid-48484886-e724-441f-a0c0-ee5505fe4c68">
<omgdc:Font name="Arial" size="11.0"/>
</bpmndi:BPMNLabelStyle>
<bpmndi:BPMNLabelStyle id="sid-b3b67b2b-3b4c-4256-b506-376edded1e68">
<omgdc:Font name="Arial" size="12.0"/>
</bpmndi:BPMNLabelStyle>
</bpmndi:BPMNDiagram>
</definitions>

View File

@ -234,4 +234,16 @@ describe('draw/BpmnRenderer', function() {
});
});
it('should render flow markers', function(done) {
var xml = fs.readFileSync(__dirname + '/../../../fixtures/bpmn/flow-markers.bpmn', 'utf8');
var renderer = new Viewer(container);
renderer.importXML(xml, function(err) {
done(err);
});
});
});