chore(auto-place): adjust to new auto place API

This commit is contained in:
Philipp Fromme 2020-03-09 10:41:35 +01:00 committed by fake-join[bot]
parent e03a4b2c59
commit 8d583dd91f
1 changed files with 30 additions and 26 deletions

View File

@ -8,7 +8,8 @@ import {
} from 'diagram-js/lib/layout/LayoutUtil';
import {
deconflictPosition,
findFreePosition,
generateGetNextPosition,
getConnectedDistance
} from 'diagram-js/lib/features/auto-place/AutoPlaceUtil';
@ -46,13 +47,15 @@ export function getFlowNodePosition(source, element) {
var sourceTrbl = asTRBL(source);
var sourceMid = getMid(source);
var horizontalDistance = getConnectedDistance(source, 'x', function(connection) {
return is(connection, 'bpmn:SequenceFlow');
var horizontalDistance = getConnectedDistance(source, {
filter: function(connection) {
return is(connection, 'bpmn:SequenceFlow');
}
});
var orientation = 'left',
rowSize = 80,
margin = 30;
var margin = 30,
minDistance = 80,
orientation = 'left';
if (is(source, 'bpmn:BoundaryEvent')) {
orientation = getOrientation(source, source.host, -25);
@ -62,29 +65,30 @@ export function getFlowNodePosition(source, element) {
}
}
function getVerticalDistance(orient) {
if (orient.indexOf('top') != -1) {
return -1 * rowSize;
} else if (orient.indexOf('bottom') != -1) {
return rowSize;
} else {
return 0;
}
}
var position = {
x: sourceTrbl.right + horizontalDistance + element.width / 2,
y: sourceMid.y + getVerticalDistance(orientation)
y: sourceMid.y + getVerticalDistance(orientation, minDistance)
};
var escapeDirection = {
var nextPositionDirection = {
y: {
margin: margin,
rowSize: rowSize
minDistance: minDistance
}
};
return deconflictPosition(source, element, position, escapeDirection);
return findFreePosition(source, element, position, generateGetNextPosition(nextPositionDirection));
}
function getVerticalDistance(orientation, minDistance) {
if (orientation.indexOf('top') != -1) {
return -1 * minDistance;
} else if (orientation.indexOf('bottom') != -1) {
return minDistance;
} else {
return 0;
}
}
@ -100,14 +104,14 @@ export function getTextAnnotationPosition(source, element) {
y: sourceTrbl.top - 50 - element.height / 2
};
var escapeDirection = {
var nextPositionDirection = {
y: {
margin: -30,
rowSize: 20
minDistance: 20
}
};
return deconflictPosition(source, element, position, escapeDirection);
return findFreePosition(source, element, position, generateGetNextPosition(nextPositionDirection));
}
@ -123,12 +127,12 @@ export function getDataElementPosition(source, element) {
y: sourceTrbl.bottom + 40 + element.width / 2
};
var escapeDirection = {
var nextPositionDirection = {
x: {
margin: 30,
rowSize: 30
minDistance: 30
}
};
return deconflictPosition(source, element, position, escapeDirection);
return findFreePosition(source, element, position, generateGetNextPosition(nextPositionDirection));
}