123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- import inherits from 'inherits';
- import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor';
- import {
- getBusinessObject,
- is
- } from '../../../util/ModelUtil';
- /**
- * A behavior that unsets the Default property of
- * sequence flow source on element delete, if the
- * removed element is the Gateway or Task's default flow.
- *
- * @param {EventBus} eventBus
- * @param {Modeling} modeling
- */
- export default function DeleteSequenceFlowBehavior(eventBus, modeling) {
- CommandInterceptor.call(this, eventBus);
- this.preExecute('connection.delete', function(event) {
- var context = event.context,
- connection = context.connection,
- source = connection.source;
- if (isDefaultFlow(connection, source)) {
- modeling.updateProperties(source, {
- 'default': null
- });
- }
- });
- }
- inherits(DeleteSequenceFlowBehavior, CommandInterceptor);
- DeleteSequenceFlowBehavior.$inject = [
- 'eventBus',
- 'modeling'
- ];
- // helpers //////////////////////
- function isDefaultFlow(connection, source) {
- if (!is(connection, 'bpmn:SequenceFlow')) {
- return false;
- }
- var sourceBo = getBusinessObject(source),
- sequenceFlow = getBusinessObject(connection);
- return sourceBo.get('default') === sequenceFlow;
- }
|