parent
2a989465fb
commit
6da1a0cb63
|
@ -57,9 +57,6 @@ function ReplaceElementBehaviour(eventBus, bpmnReplace, bpmnRules, elementRegist
|
||||||
attachers = oldShape.attachers,
|
attachers = oldShape.attachers,
|
||||||
canReplace;
|
canReplace;
|
||||||
|
|
||||||
modeling.unclaimId(oldShape.businessObject.id, oldShape.businessObject);
|
|
||||||
modeling.claimId(newShape.businessObject.id, newShape.businessObject);
|
|
||||||
|
|
||||||
if (attachers && attachers.length) {
|
if (attachers && attachers.length) {
|
||||||
canReplace = bpmnRules.canReplace(attachers, newShape);
|
canReplace = bpmnRules.canReplace(attachers, newShape);
|
||||||
|
|
||||||
|
@ -67,6 +64,15 @@ function ReplaceElementBehaviour(eventBus, bpmnReplace, bpmnRules, elementRegist
|
||||||
}
|
}
|
||||||
|
|
||||||
}, this);
|
}, this);
|
||||||
|
|
||||||
|
this.postExecuted( [ 'shape.replace' ], 1500, function(e) {
|
||||||
|
var context = e.context,
|
||||||
|
oldShape = context.oldShape,
|
||||||
|
newShape = context.newShape;
|
||||||
|
|
||||||
|
modeling.unclaimId(oldShape.businessObject.id, oldShape.businessObject);
|
||||||
|
modeling.updateProperties(newShape, { id: oldShape.id });
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
inherits(ReplaceElementBehaviour, CommandInterceptor);
|
inherits(ReplaceElementBehaviour, CommandInterceptor);
|
||||||
|
|
|
@ -31,7 +31,6 @@ describe('features/modeling - move start event behavior', function() {
|
||||||
modules: testModules
|
modules: testModules
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
|
||||||
var moveShape;
|
var moveShape;
|
||||||
|
|
||||||
beforeEach(inject(function(move, dragging, elementRegistry) {
|
beforeEach(inject(function(move, dragging, elementRegistry) {
|
||||||
|
@ -63,11 +62,7 @@ describe('features/modeling - move start event behavior', function() {
|
||||||
|
|
||||||
dragging.end();
|
dragging.end();
|
||||||
|
|
||||||
var replacement = elementRegistry.filter(function(element) {
|
var replacement = elementRegistry.get('StartEvent_1');
|
||||||
if (is(element, 'bpmn:StartEvent') && element.parent === rootElement) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
})[0];
|
|
||||||
|
|
||||||
// then
|
// then
|
||||||
expect(selection.get()).to.include(replacement);
|
expect(selection.get()).to.include(replacement);
|
||||||
|
@ -112,15 +107,13 @@ describe('features/modeling - move start event behavior', function() {
|
||||||
|
|
||||||
var diagramXML = require('../../../../fixtures/bpmn/features/replace/cancel-events.bpmn');
|
var diagramXML = require('../../../../fixtures/bpmn/features/replace/cancel-events.bpmn');
|
||||||
|
|
||||||
beforeEach(bootstrapModeler(diagramXML, {
|
beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
|
||||||
modules: testModules
|
|
||||||
}));
|
|
||||||
|
|
||||||
|
|
||||||
describe('normal', function() {
|
describe('normal', function() {
|
||||||
|
|
||||||
|
|
||||||
it('should unclaim old element ID and claim new ID',
|
it('should unclaim ID and claim same ID with new element',
|
||||||
inject(function(elementRegistry, bpmnReplace) {
|
inject(function(elementRegistry, bpmnReplace) {
|
||||||
|
|
||||||
// given
|
// given
|
||||||
|
@ -132,13 +125,14 @@ describe('features/modeling - move start event behavior', function() {
|
||||||
var subProcess = bpmnReplace.replaceElement(transaction, { type: 'bpmn:SubProcess' });
|
var subProcess = bpmnReplace.replaceElement(transaction, { type: 'bpmn:SubProcess' });
|
||||||
|
|
||||||
// then
|
// then
|
||||||
expect(ids.assigned(transaction.id)).to.be.false;
|
expect(ids.assigned(transaction.id)).to.eql(subProcess.businessObject);
|
||||||
expect(ids.assigned(subProcess.id)).to.eql(subProcess.businessObject);
|
expect(ids.assigned(subProcess.id)).to.eql(subProcess.businessObject);
|
||||||
|
expect(subProcess.id).to.eql(transaction.id);
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
it('should REVERT unclaim old element ID and claim new ID on UNDO',
|
it('should REVERT unclaim ID and claim same ID with new element on UNDO',
|
||||||
inject(function(elementRegistry, bpmnReplace, commandStack) {
|
inject(function(elementRegistry, bpmnReplace, commandStack) {
|
||||||
|
|
||||||
// given
|
// given
|
||||||
|
@ -153,7 +147,7 @@ describe('features/modeling - move start event behavior', function() {
|
||||||
|
|
||||||
// then
|
// then
|
||||||
expect(ids.assigned(transaction.id)).to.eql(transaction.businessObject);
|
expect(ids.assigned(transaction.id)).to.eql(transaction.businessObject);
|
||||||
expect(ids.assigned(subProcess.id)).to.be.false;
|
expect(subProcess.id).not.to.equal(transaction.id);
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -290,7 +284,7 @@ describe('features/modeling - move start event behavior', function() {
|
||||||
// then
|
// then
|
||||||
expect(newBoundaryEvent.eventDefinitionTypes).to.not.exist;
|
expect(newBoundaryEvent.eventDefinitionTypes).to.not.exist;
|
||||||
expect(newBoundaryEvent.attachedToRef).to.equal(subProcess.businessObject);
|
expect(newBoundaryEvent.attachedToRef).to.equal(subProcess.businessObject);
|
||||||
expect(elementRegistry.get('Transaction_1')).to.not.exist;
|
expect(elementRegistry.get('Transaction_1')).to.eql(subProcess);
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -1007,7 +1007,9 @@ describe('features/replace - bpmn replace', function() {
|
||||||
modeling.moveElements([interruptingStartEvent], { x: 0, y: 200 }, root);
|
modeling.moveElements([interruptingStartEvent], { x: 0, y: 200 }, root);
|
||||||
|
|
||||||
var startEventAfter = elementRegistry.filter(function(element) {
|
var startEventAfter = elementRegistry.filter(function(element) {
|
||||||
return is(element, 'bpmn:StartEvent') && element.parent === root;
|
return is(element, 'bpmn:StartEvent')
|
||||||
|
&& element.type !== 'label'
|
||||||
|
&& element.parent === root;
|
||||||
})[0];
|
})[0];
|
||||||
|
|
||||||
// then
|
// then
|
||||||
|
|
Loading…
Reference in New Issue