feat(subprocesses): add boundary events to expanded view
This commit is contained in:
parent
d30574f5dd
commit
6f0c0217b9
|
@ -0,0 +1,55 @@
|
|||
import { getBusinessObject, is } from '../../util/ModelUtil';
|
||||
|
||||
export default function SubprocessElements(eventBus, elementRegistry, canvas, elementFactory) {
|
||||
var attachBoundaries = function() {
|
||||
var secondaryShapes = elementRegistry.filter(function(el) {
|
||||
return is(el, 'bpmn:SubProcess') && el.isSecondary;
|
||||
});
|
||||
|
||||
secondaryShapes.forEach(function(process) {
|
||||
|
||||
// Add Boundary events
|
||||
if (process.primaryShape && process.primaryShape.attachers) {
|
||||
process.primaryShape.attachers.forEach(function(boundary) {
|
||||
var bo = getBusinessObject(boundary);
|
||||
|
||||
var primary = process.primaryShape;
|
||||
|
||||
var relativeXPos = (boundary.x + 15 - primary.x) / primary.width;
|
||||
var relativeYPos = (boundary.y + 15 - primary.y) / primary.height;
|
||||
|
||||
var dx = process.x + (process.width * relativeXPos) - 15;
|
||||
var dy = process.y + (process.height * relativeYPos) - 15;
|
||||
|
||||
var boundaryShape = elementFactory.createShape({
|
||||
id: bo.id + '_secondary',
|
||||
businessObject: bo,
|
||||
type: 'bpmn:BoundaryEvent',
|
||||
hidden: false,
|
||||
x: dx,
|
||||
y: dy,
|
||||
width: 30,
|
||||
height: 30,
|
||||
isFrame: false,
|
||||
isSecondary: true,
|
||||
primaryShape: boundary,
|
||||
di: boundary.di
|
||||
});
|
||||
|
||||
canvas.addShape(boundaryShape, process.parent);
|
||||
|
||||
if (!process.attachers) {
|
||||
process.attachers = [];
|
||||
}
|
||||
|
||||
process.attachers.push(boundaryShape);
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
eventBus.on('import.done', attachBoundaries);
|
||||
}
|
||||
|
||||
|
||||
SubprocessElements.$inject = [ 'eventBus', 'elementRegistry', 'canvas', 'elementFactory' ];
|
Loading…
Reference in New Issue