EventProps.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. 'use strict';
  2. var is = require('bpmn-js/lib/util/ModelUtil').is,
  3. isAny = require('bpmn-js/lib/features/modeling/util/ModelingUtil').isAny,
  4. getBusinessObject = require('bpmn-js/lib/util/ModelUtil').getBusinessObject,
  5. eventDefinitionHelper = require('../../../helper/EventDefinitionHelper');
  6. var forEach = require('lodash/forEach');
  7. var message = require('./implementation/MessageEventDefinition'),
  8. signal = require('./implementation/SignalEventDefinition'),
  9. error = require('./implementation/ErrorEventDefinition'),
  10. escalation = require('./implementation/EscalationEventDefinition'),
  11. timer = require('./implementation/TimerEventDefinition'),
  12. compensation = require('./implementation/CompensateEventDefinition'),
  13. condition = require('./implementation/ConditionalEventDefinition');
  14. module.exports = function(group, element, bpmnFactory, elementRegistry, translate) {
  15. var events = [
  16. 'bpmn:StartEvent',
  17. 'bpmn:EndEvent',
  18. 'bpmn:IntermediateThrowEvent',
  19. 'bpmn:BoundaryEvent',
  20. 'bpmn:IntermediateCatchEvent'
  21. ];
  22. // Message and Signal Event Definition
  23. forEach(events, function(event) {
  24. if (is(element, event)) {
  25. var messageEventDefinition = eventDefinitionHelper.getMessageEventDefinition(element),
  26. signalEventDefinition = eventDefinitionHelper.getSignalEventDefinition(element);
  27. if (messageEventDefinition) {
  28. message(group, element, bpmnFactory, messageEventDefinition, translate);
  29. }
  30. if (signalEventDefinition) {
  31. signal(group, element, bpmnFactory, signalEventDefinition, translate);
  32. }
  33. }
  34. });
  35. // Special Case: Receive Task
  36. if (is(element, 'bpmn:ReceiveTask')) {
  37. message(group, element, bpmnFactory, getBusinessObject(element), translate);
  38. }
  39. // Error Event Definition
  40. var errorEvents = [
  41. 'bpmn:StartEvent',
  42. 'bpmn:BoundaryEvent',
  43. 'bpmn:EndEvent'
  44. ];
  45. forEach(errorEvents, function(event) {
  46. if (is(element, event)) {
  47. var errorEventDefinition = eventDefinitionHelper.getErrorEventDefinition(element);
  48. if (errorEventDefinition) {
  49. error(group, element, bpmnFactory, errorEventDefinition, translate);
  50. }
  51. }
  52. });
  53. // Escalation Event Definition
  54. var escalationEvents = [
  55. 'bpmn:StartEvent',
  56. 'bpmn:BoundaryEvent',
  57. 'bpmn:IntermediateThrowEvent',
  58. 'bpmn:EndEvent'
  59. ];
  60. forEach(escalationEvents, function(event) {
  61. if (is(element, event)) {
  62. var showEscalationCodeVariable = is(element, 'bpmn:StartEvent') || is(element, 'bpmn:BoundaryEvent');
  63. // get business object
  64. var escalationEventDefinition = eventDefinitionHelper.getEscalationEventDefinition(element);
  65. if (escalationEventDefinition) {
  66. escalation(group, element, bpmnFactory, escalationEventDefinition, showEscalationCodeVariable,
  67. translate);
  68. }
  69. }
  70. });
  71. // Timer Event Definition
  72. var timerEvents = [
  73. 'bpmn:StartEvent',
  74. 'bpmn:BoundaryEvent',
  75. 'bpmn:IntermediateCatchEvent'
  76. ];
  77. forEach(timerEvents, function(event) {
  78. if (is(element, event)) {
  79. // get business object
  80. var timerEventDefinition = eventDefinitionHelper.getTimerEventDefinition(element);
  81. if (timerEventDefinition) {
  82. timer(group, element, bpmnFactory, timerEventDefinition, translate);
  83. }
  84. }
  85. });
  86. // Compensate Event Definition
  87. var compensationEvents = [
  88. 'bpmn:EndEvent',
  89. 'bpmn:IntermediateThrowEvent'
  90. ];
  91. forEach(compensationEvents, function(event) {
  92. if (is(element, event)) {
  93. // get business object
  94. var compensateEventDefinition = eventDefinitionHelper.getCompensateEventDefinition(element);
  95. if (compensateEventDefinition) {
  96. compensation(group, element, bpmnFactory, compensateEventDefinition, elementRegistry, translate);
  97. }
  98. }
  99. });
  100. // Conditional Event Definition
  101. var conditionalEvents = [
  102. 'bpmn:StartEvent',
  103. 'bpmn:BoundaryEvent',
  104. 'bpmn:IntermediateThrowEvent',
  105. 'bpmn:IntermediateCatchEvent'
  106. ];
  107. if (isAny(element, conditionalEvents)) {
  108. // get business object
  109. var conditionalEventDefinition = eventDefinitionHelper.getConditionalEventDefinition(element);
  110. if (conditionalEventDefinition) {
  111. condition(group, element, bpmnFactory, conditionalEventDefinition, elementRegistry, translate);
  112. }
  113. }
  114. };