'use strict'; var entryFactory = require('../../../../factory/EntryFactory'), cmdHelper = require('../../../../helper/CmdHelper'), elementReferenceProperty = require('../../../../provider/bpmn/parts/implementation/ElementReferenceProperty'); module.exports = function( group, element, bpmnFactory, errorEventDefinition, showErrorCodeVariable, showErrorMessageVariable, translate ) { var getValue = function(modelProperty) { return function(element) { var modelPropertyValue = errorEventDefinition.get('activiti:' + modelProperty); var value = {}; value[modelProperty] = modelPropertyValue; return value; }; }; var setValue = function(modelProperty) { return function(element, values) { var props = {}; props['activiti:' + modelProperty] = values[modelProperty] || undefined; return cmdHelper.updateBusinessObject(element, errorEventDefinition, props); }; }; group.entries = group.entries.concat( elementReferenceProperty(element, errorEventDefinition, bpmnFactory, { id: 'error-element-message', label: translate('Error Message'), referenceProperty: 'errorRef', modelProperty: 'errorMessage' }) ); if (showErrorCodeVariable) { group.entries.push(entryFactory.textField({ id: 'errorCodeVariable', label: translate('Error Code Variable'), modelProperty : 'errorCodeVariable', get: getValue('errorCodeVariable'), set: setValue('errorCodeVariable') })); } if (showErrorMessageVariable) { group.entries.push(entryFactory.textField({ id: 'errorMessageVariable', label: translate('Error Message Variable'), modelProperty: 'errorMessageVariable', get: getValue('errorMessageVariable'), set: setValue('errorMessageVariable') })); } };