UpdateSemanticParentHandler.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /**
  2. * @typedef {import('diagram-js/lib/command/CommandHandler').default} CommandHandler
  3. *
  4. * @typedef {import('../BpmnUpdater').default} BpmnUpdater
  5. */
  6. /**
  7. * @implements {CommandHandler}
  8. *
  9. * @param {BpmnUpdater} bpmnUpdater
  10. */
  11. export default function UpdateSemanticParentHandler(bpmnUpdater) {
  12. this._bpmnUpdater = bpmnUpdater;
  13. }
  14. UpdateSemanticParentHandler.$inject = [ 'bpmnUpdater' ];
  15. UpdateSemanticParentHandler.prototype.execute = function(context) {
  16. var dataStoreBo = context.dataStoreBo,
  17. dataStoreDi = context.dataStoreDi,
  18. newSemanticParent = context.newSemanticParent,
  19. newDiParent = context.newDiParent;
  20. context.oldSemanticParent = dataStoreBo.$parent;
  21. context.oldDiParent = dataStoreDi.$parent;
  22. // update semantic parent
  23. this._bpmnUpdater.updateSemanticParent(dataStoreBo, newSemanticParent);
  24. // update DI parent
  25. this._bpmnUpdater.updateDiParent(dataStoreDi, newDiParent);
  26. return [];
  27. };
  28. UpdateSemanticParentHandler.prototype.revert = function(context) {
  29. var dataStoreBo = context.dataStoreBo,
  30. dataStoreDi = context.dataStoreDi,
  31. oldSemanticParent = context.oldSemanticParent,
  32. oldDiParent = context.oldDiParent;
  33. // update semantic parent
  34. this._bpmnUpdater.updateSemanticParent(dataStoreBo, oldSemanticParent);
  35. // update DI parent
  36. this._bpmnUpdater.updateDiParent(dataStoreDi, oldDiParent);
  37. return [];
  38. };