CreateDataObjectBehavior.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import inherits from 'inherits-browser';
  2. import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor';
  3. import { is } from '../../../util/ModelUtil';
  4. /**
  5. * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus
  6. * @typedef {import('../BpmnFactory').default} BpmnFactory
  7. */
  8. /**
  9. * BPMN specific create data object behavior.
  10. *
  11. * @param {EventBus} eventBus
  12. * @param {BpmnFactory} bpmnFactory
  13. */
  14. export default function CreateDataObjectBehavior(eventBus, bpmnFactory) {
  15. CommandInterceptor.call(this, eventBus);
  16. this.preExecute('shape.create', function(event) {
  17. var context = event.context,
  18. shape = context.shape;
  19. if (is(shape, 'bpmn:DataObjectReference') && shape.type !== 'label') {
  20. // create a DataObject every time a DataObjectReference is created
  21. var dataObject = bpmnFactory.create('bpmn:DataObject');
  22. // set the reference to the DataObject
  23. shape.businessObject.dataObjectRef = dataObject;
  24. }
  25. });
  26. }
  27. CreateDataObjectBehavior.$inject = [
  28. 'eventBus',
  29. 'bpmnFactory'
  30. ];
  31. inherits(CreateDataObjectBehavior, CommandInterceptor);