Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
} else
if (is(businessObject, 'bpmn:Participant')) {
containment = 'participants';
// make sure the participants process is properly attached / detached
// from the XML document
var process = businessObject.processRef,
definitions;
if (process) {
definitions = getDefinitions(businessObject.$parent || newParent);
if (businessObject.$parent) {
collectionRemove(definitions.get('rootElements'), process);
process.$parent = null;
}
if (newParent) {
collectionAdd(definitions.get('rootElements'), process);
process.$parent = definitions;
}
}
} else
if (is(businessObject, 'bpmn:DataOutputAssociation')) {
containment = 'dataOutputAssociations';
} else
if (is(businessObject, 'bpmn:DataInputAssociation')) {
containment = 'dataInputAssociations';
UpdateCanvasRootHandler.prototype.revert = function(context) {
var canvas = this._canvas;
var newRoot = context.newRoot,
newRootBusinessObject = newRoot.businessObject,
oldRoot = context.oldRoot,
oldRootBusinessObject = oldRoot.businessObject,
bpmnDefinitions = newRootBusinessObject.$parent,
diPlane = newRootBusinessObject.di;
// (1) replace process old <> new root
canvas.setRootElement(oldRoot, true);
// (2) update root elements
collectionRemove(bpmnDefinitions.rootElements, newRootBusinessObject);
newRootBusinessObject.$parent = null;
collectionAdd(bpmnDefinitions.rootElements, oldRootBusinessObject);
oldRootBusinessObject.$parent = bpmnDefinitions;
// (3) wire di
newRootBusinessObject.di = null;
diPlane.bpmnElement = oldRootBusinessObject;
oldRootBusinessObject.di = diPlane;
// TODO(nikku): return changed elements?
// return [ newRoot, oldRoot ];
};
function updateCustomElement(e) {
let context = e.context,
shape = context.shape,
businessObject = shape.businessObject;
if (!isDomainStory(shape)) {
return;
}
let parent = shape.parent;
let customElements = bpmnjs._customElements;
// make sure element is added / removed from bpmnjs.customElements
if (!parent) {
collectionRemove(customElements, businessObject);
} else {
collectionAdd(customElements, businessObject);
}
// save custom element position
assign(businessObject, pick(shape, ['x', 'y']));
// save custom element size if resizable
if (isDomainStoryGroup(shape)) {
assign(businessObject, pick(shape, ['height', 'width']));
// rework the child-parent relations if a group was moved, such that all Objects that are visually in the group are also associated with it
// since we do not have access to the standard-canvas object here, we cannot use the function correctGroupChildren() from DSLabelUtil
if (parent != null) {
reworkGroupElements(parent, shape);
}
if (is(businessObject, 'cmmn:Artifact')) {
newParent = newParent && getDefinitions(newParent);
containment = 'artifacts';
}
if (!containment) {
throw new Error('no parent for ', businessObject, newParent);
}
var children;
if (businessObject.$parent) {
// remove from old parent
children = businessObject.$parent.get(containment);
Collections.remove(children, businessObject);
}
if (newParent) {
// add to new parent
children = newParent.get(containment);
children.push(businessObject);
businessObject.$parent = newParent;
} else {
businessObject.$parent = null;
}
};
function updateCustomElement(e) {
var context = e.context,
shape = context.shape,
businessObject = shape.businessObject;
if (!isCustom(shape)) {
return;
}
var parent = shape.parent;
var customElements = bpmnjs._customElements;
// make sure element is added / removed from bpmnjs.customElements
if (!parent) {
collectionRemove(customElements, businessObject);
} else {
collectionAdd(customElements, businessObject);
}
// save custom element position
assign(businessObject, pick(shape, [ 'x', 'y' ]));
}
if (parentDi && !is(parentDi, 'cmmndi:CMMNDiagram')) {
parentDi = parentDi.$parent;
}
if (di.$parent === parentDi) {
return;
}
var diagramElements = (parentDi || di.$parent).get('diagramElements');
if (parentDi) {
diagramElements.push(di);
di.$parent = parentDi;
}
else {
Collections.remove(diagramElements, di);
di.$parent = null;
}
};
BpmnUpdater.prototype.updateConnection = function(context) {
var connection = context.connection,
businessObject = getBusinessObject(connection),
newSource = getBusinessObject(connection.source),
newTarget = getBusinessObject(connection.target),
visualParent;
if (!is(businessObject, 'bpmn:DataAssociation')) {
var inverseSet = is(businessObject, 'bpmn:SequenceFlow');
if (businessObject.sourceRef !== newSource) {
if (inverseSet) {
collectionRemove(businessObject.sourceRef && businessObject.sourceRef.get('outgoing'), businessObject);
if (newSource && newSource.get('outgoing')) {
newSource.get('outgoing').push(businessObject);
}
}
businessObject.sourceRef = newSource;
}
if (businessObject.targetRef !== newTarget) {
if (inverseSet) {
collectionRemove(businessObject.targetRef && businessObject.targetRef.get('incoming'), businessObject);
if (newTarget && newTarget.get('incoming')) {
newTarget.get('incoming').push(businessObject);
}
function removeCategory(category) {
var definitions = getDefinitions();
collectionRemove(definitions.get('rootElements'), category);
}
update.remove.forEach(function(oldLane) {
collectionRemove(lanes, oldLane);
collectionRemove(oldLane.get(FLOW_NODE_REFS_ATTR), flowNode);
});
BpmnUpdater.prototype.updateFlowNodeRefs = function(businessObject, newContainment, oldContainment) {
if (oldContainment === newContainment) {
return;
}
var oldRefs, newRefs;
if (is (oldContainment, 'bpmn:Lane')) {
oldRefs = oldContainment.get('flowNodeRef');
collectionRemove(oldRefs, businessObject);
}
if (is(newContainment, 'bpmn:Lane')) {
newRefs = newContainment.get('flowNodeRef');
collectionAdd(newRefs, businessObject);
}
};