1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- 'use strict';
- var entryFactory = require('../../../../factory/EntryFactory'),
- cmdHelper = require('../../../../helper/CmdHelper');
- var DELEGATE_TYPES = [
- 'class',
- 'expression',
- 'delegateExpression'
- ];
- var PROPERTIES = {
- class: 'activiti:class',
- expression: 'activiti:expression',
- delegateExpression: 'activiti:delegateExpression'
- };
- function isDelegate(type) {
- return DELEGATE_TYPES.indexOf(type) !== -1;
- }
- function getAttribute(type) {
- return PROPERTIES[type];
- }
- module.exports = function(element, bpmnFactory, options, translate) {
- var getImplementationType = options.getImplementationType,
- getBusinessObject = options.getBusinessObject;
- function getDelegationLabel(type) {
- switch (type) {
- case 'class':
- return translate('Java Class');
- case 'expression':
- return translate('Expression');
- case 'delegateExpression':
- return translate('Delegate Expression');
- default:
- return '';
- }
- }
- var delegateEntry = entryFactory.textField({
- id: 'delegate',
- label: translate('Value'),
- dataValueLabel: 'delegationLabel',
- modelProperty: 'delegate',
- get: function(element, node) {
- var bo = getBusinessObject(element);
- var type = getImplementationType(element);
- var attr = getAttribute(type);
- var label = getDelegationLabel(type);
- return {
- delegate: bo.get(attr),
- delegationLabel: label
- };
- },
- set: function(element, values, node) {
- var bo = getBusinessObject(element);
- var type = getImplementationType(element);
- var attr = getAttribute(type);
- var prop = {};
- prop[attr] = values.delegate || '';
- return cmdHelper.updateBusinessObject(element, bo, prop);
- },
- validate: function(element, values, node) {
- return isDelegate(getImplementationType(element)) && !values.delegate ? { delegate: translate('Must provide a value') } : {};
- },
- hidden: function(element, node) {
- return !isDelegate(getImplementationType(element));
- }
- });
- return [ delegateEntry ];
- };
|