151 lines
4.2 KiB
JavaScript
151 lines
4.2 KiB
JavaScript
'use strict';
|
|
|
|
var is = require('bpmn-js/lib/util/ModelUtil').is,
|
|
isAny = require('bpmn-js/lib/features/modeling/util/ModelingUtil').isAny,
|
|
getBusinessObject = require('bpmn-js/lib/util/ModelUtil').getBusinessObject,
|
|
eventDefinitionHelper = require('../../../helper/EventDefinitionHelper');
|
|
|
|
var forEach = require('lodash/forEach');
|
|
|
|
var message = require('./implementation/MessageEventDefinition'),
|
|
signal = require('./implementation/SignalEventDefinition'),
|
|
error = require('./implementation/ErrorEventDefinition'),
|
|
escalation = require('./implementation/EscalationEventDefinition'),
|
|
timer = require('./implementation/TimerEventDefinition'),
|
|
compensation = require('./implementation/CompensateEventDefinition'),
|
|
condition = require('./implementation/ConditionalEventDefinition');
|
|
|
|
|
|
module.exports = function(group, element, bpmnFactory, elementRegistry, translate) {
|
|
var events = [
|
|
'bpmn:StartEvent',
|
|
'bpmn:EndEvent',
|
|
'bpmn:IntermediateThrowEvent',
|
|
'bpmn:BoundaryEvent',
|
|
'bpmn:IntermediateCatchEvent'
|
|
];
|
|
|
|
// Message and Signal Event Definition
|
|
forEach(events, function(event) {
|
|
if (is(element, event)) {
|
|
|
|
var messageEventDefinition = eventDefinitionHelper.getMessageEventDefinition(element),
|
|
signalEventDefinition = eventDefinitionHelper.getSignalEventDefinition(element);
|
|
|
|
if (messageEventDefinition) {
|
|
message(group, element, bpmnFactory, messageEventDefinition, translate);
|
|
}
|
|
|
|
if (signalEventDefinition) {
|
|
signal(group, element, bpmnFactory, signalEventDefinition, translate);
|
|
}
|
|
|
|
}
|
|
});
|
|
|
|
// Special Case: Receive Task
|
|
if (is(element, 'bpmn:ReceiveTask')) {
|
|
message(group, element, bpmnFactory, getBusinessObject(element), translate);
|
|
}
|
|
|
|
// Error Event Definition
|
|
var errorEvents = [
|
|
'bpmn:StartEvent',
|
|
'bpmn:BoundaryEvent',
|
|
'bpmn:EndEvent'
|
|
];
|
|
|
|
forEach(errorEvents, function(event) {
|
|
if (is(element, event)) {
|
|
|
|
var errorEventDefinition = eventDefinitionHelper.getErrorEventDefinition(element);
|
|
|
|
if (errorEventDefinition) {
|
|
|
|
error(group, element, bpmnFactory, errorEventDefinition, translate);
|
|
}
|
|
}
|
|
});
|
|
|
|
// Escalation Event Definition
|
|
var escalationEvents = [
|
|
'bpmn:StartEvent',
|
|
'bpmn:BoundaryEvent',
|
|
'bpmn:IntermediateThrowEvent',
|
|
'bpmn:EndEvent'
|
|
];
|
|
|
|
forEach(escalationEvents, function(event) {
|
|
if (is(element, event)) {
|
|
|
|
var showEscalationCodeVariable = is(element, 'bpmn:StartEvent') || is(element, 'bpmn:BoundaryEvent');
|
|
|
|
// get business object
|
|
var escalationEventDefinition = eventDefinitionHelper.getEscalationEventDefinition(element);
|
|
|
|
if (escalationEventDefinition) {
|
|
escalation(group, element, bpmnFactory, escalationEventDefinition, showEscalationCodeVariable,
|
|
translate);
|
|
}
|
|
}
|
|
|
|
});
|
|
|
|
// Timer Event Definition
|
|
var timerEvents = [
|
|
'bpmn:StartEvent',
|
|
'bpmn:BoundaryEvent',
|
|
'bpmn:IntermediateCatchEvent'
|
|
];
|
|
|
|
forEach(timerEvents, function(event) {
|
|
if (is(element, event)) {
|
|
|
|
// get business object
|
|
var timerEventDefinition = eventDefinitionHelper.getTimerEventDefinition(element);
|
|
|
|
if (timerEventDefinition) {
|
|
timer(group, element, bpmnFactory, timerEventDefinition, translate);
|
|
}
|
|
}
|
|
});
|
|
|
|
// Compensate Event Definition
|
|
var compensationEvents = [
|
|
'bpmn:EndEvent',
|
|
'bpmn:IntermediateThrowEvent'
|
|
];
|
|
|
|
forEach(compensationEvents, function(event) {
|
|
if (is(element, event)) {
|
|
|
|
// get business object
|
|
var compensateEventDefinition = eventDefinitionHelper.getCompensateEventDefinition(element);
|
|
|
|
if (compensateEventDefinition) {
|
|
compensation(group, element, bpmnFactory, compensateEventDefinition, elementRegistry, translate);
|
|
}
|
|
}
|
|
});
|
|
|
|
|
|
// Conditional Event Definition
|
|
var conditionalEvents = [
|
|
'bpmn:StartEvent',
|
|
'bpmn:BoundaryEvent',
|
|
'bpmn:IntermediateThrowEvent',
|
|
'bpmn:IntermediateCatchEvent'
|
|
];
|
|
|
|
if (isAny(element, conditionalEvents)) {
|
|
|
|
// get business object
|
|
var conditionalEventDefinition = eventDefinitionHelper.getConditionalEventDefinition(element);
|
|
|
|
if (conditionalEventDefinition) {
|
|
condition(group, element, bpmnFactory, conditionalEventDefinition, elementRegistry, translate);
|
|
}
|
|
}
|
|
|
|
};
|