fix(ordering): allow groups and associations in subprocesses

related to https://github.com/camunda/camunda-modeler/issues/2751, https://github.com/camunda/camunda-modeler/issues/2752
This commit is contained in:
Martin Stamm 2022-02-14 11:58:15 +01:00 committed by fake-join[bot]
parent 8bbeac5410
commit e41442b393
4 changed files with 195 additions and 2 deletions

View File

@ -42,7 +42,7 @@ export default function BpmnOrderingProvider(eventBus, canvas, translate) {
level: 9,
containers: [
'bpmn:Collaboration',
'bpmn:Process'
'bpmn:FlowElementsContainer'
]
}
},
@ -70,7 +70,7 @@ export default function BpmnOrderingProvider(eventBus, canvas, translate) {
level: 10,
containers: [
'bpmn:Collaboration',
'bpmn:Process'
'bpmn:FlowElementsContainer'
]
}
},

View File

@ -343,6 +343,48 @@ describe('features/modeling - ordering', function() {
});
describe('inside subprocess', function() {
var diagramXML = require('./collapsed-subprocess.bpmn');
beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
describe('should stay always in front', function() {
it('moving <Group> onto <StartEvent>', inject(function() {
// when
move('Group', { x: 100, y: 0 }, 'StartEvent', false);
// then
expectZOrder('StartEvent', 'Group');
}));
it('moving <Group> onto <Task>', inject(function() {
// when
move('Group', { x: 200, y: 50 }, 'Task', false);
// then
expectZOrder('Task', 'Group');
}));
it('move <Group> onto <SubProcess>', inject(function() {
// when
move('Group', { x: 400, y: 0 }, 'SubProcess', false);
// then
expectZOrder('SubProcess', 'Group');
}));
});
});
});
@ -364,4 +406,51 @@ describe('features/modeling - ordering', function() {
});
describe('data associations', function() {
var diagramXML = require('./data-association.bpmn');
beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
it('should render data associations infront of Collaboration', inject(function() {
// when
var connection = connect('DataStore', 'Task_1');
// then
expectZOrder('Collaboration_1', 'DataStore', connection);
}));
describe('inside subprocesses', function() {
it('should render data associations behind other Subprocess', inject(function() {
// assumne
expectZOrder('SubProcess_1', 'SubProcess_2');
// when
var connection = connect('DataReference_1', 'Task_1');
// then
expectZOrder('SubProcess_1', connection, 'SubProcess_2');
}));
it('should render in collapsed subprocess plane', inject(function() {
// when
var connection = connect('DataReference_2', 'Task_2');
// then
expectZOrder('collapsedSubProcess_plane', 'DataReference_2', connection);
}));
});
});
});

View File

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<definitions 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:xsi="http://www.w3.org/2001/XMLSchema-instance" id="sid-0fcc2144-457b-4505-9e44-ff673663e3bc" targetNamespace="http://www.signavio.com/bpmn20" exporter="Camunda Modeler" exporterVersion="3.0.1" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL http://www.omg.org/spec/BPMN/2.0/20100501/BPMN20.xsd">
<category id="Category_1">
<categoryValue id="CategoryValue_1" value="my group" />
</category>
<collaboration id="Collaboration_1">
<participant id="Participant" processRef="Process_1" />
</collaboration>
<process id="Process_1" processType="None" isExecutable="false">
<subProcess id="Activity_0cijtmw">
<subProcess id="SubProcess" />
<task id="Task" />
<startEvent id="StartEvent" />
<group id="Group" categoryValueRef="CategoryValue_1" />
</subProcess>
</process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Collaboration_1">
<bpmndi:BPMNShape id="Participant_di" bpmnElement="Participant" isHorizontal="true">
<omgdc:Bounds x="156" y="118" width="304" height="172" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0cijtmw_di" bpmnElement="Activity_0cijtmw" isExpanded="false">
<omgdc:Bounds x="270" y="150" width="100" height="80" />
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
<bpmndi:BPMNDiagram id="BPMNDiagram_144105t">
<bpmndi:BPMNPlane id="BPMNPlane_0njyhgb" bpmnElement="Activity_0cijtmw">
<bpmndi:BPMNShape id="SubProcess_02cid6e_di" bpmnElement="SubProcess" isExpanded="true">
<omgdc:Bounds x="428" y="160" width="350" height="200" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_0nb7h9d_di" bpmnElement="Task">
<omgdc:Bounds x="288" y="279" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="StartEvent_0yve8vf_di" bpmnElement="StartEvent">
<omgdc:Bounds x="180" y="301" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Group_1di" bpmnElement="Group">
<omgdc:Bounds x="425" y="106" width="270" height="387" />
<bpmndi:BPMNLabel>
<omgdc:Bounds x="491" y="108" width="46" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>

View File

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<definitions 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:xsi="http://www.w3.org/2001/XMLSchema-instance" id="sid-0fcc2144-457b-4505-9e44-ff673663e3bc" targetNamespace="http://www.signavio.com/bpmn20" exporter="Camunda Modeler" exporterVersion="3.0.1" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL http://www.omg.org/spec/BPMN/2.0/20100501/BPMN20.xsd">
<collaboration id="Collaboration_1">
<participant id="Participant" processRef="Process_1" />
</collaboration>
<process id="Process_1" processType="None" isExecutable="false">
<subProcess id="collapsedSubProcess">
<task id="Task_2" />
<dataObjectReference id="DataReference_2" dataObjectRef="DataObject_0pqzs5u" />
<dataObject id="DataObject_0pqzs5u" />
</subProcess>
<dataStoreReference id="DataStore" />
<subProcess id="SubProcess_1">
<dataObjectReference id="DataReference_1" dataObjectRef="DataObject_0ltvnwb" />
<dataObject id="DataObject_0ltvnwb" />
<task id="Task_1" />
</subProcess>
<subProcess id="SubProcess_2" />
</process>
<category id="Category_1" />
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Collaboration_1">
<bpmndi:BPMNShape id="Participant_di" bpmnElement="Participant" isHorizontal="true">
<omgdc:Bounds x="220" y="50" width="640" height="240" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="collapsedSubProcess_di" bpmnElement="collapsedSubProcess" isExpanded="false">
<omgdc:Bounds x="270" y="150" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="SubProcess_di" bpmnElement="SubProcess_1" isExpanded="true">
<omgdc:Bounds x="400" y="70" width="290" height="200" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="DataReference_1_di" bpmnElement="DataReference_1">
<omgdc:Bounds x="612" y="195" width="36" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_1_di" bpmnElement="Task_1">
<omgdc:Bounds x="480" y="110" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="SubProcess_2_di" bpmnElement="SubProcess_2" isExpanded="true">
<omgdc:Bounds x="700" y="70" width="140" height="140" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="DataStore_di" bpmnElement="DataStore">
<omgdc:Bounds x="410" y="345" width="50" height="50" />
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
<bpmndi:BPMNDiagram id="BPMNDiagram_144105t">
<bpmndi:BPMNPlane id="BPMNPlane_0njyhgb" bpmnElement="collapsedSubProcess">
<bpmndi:BPMNShape id="Task_2_di" bpmnElement="Task_2">
<omgdc:Bounds x="200" y="140" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="DataReference_2_di" bpmnElement="DataReference_2">
<omgdc:Bounds x="332" y="265" width="36" height="50" />
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>