64 lines
1.7 KiB
JavaScript
64 lines
1.7 KiB
JavaScript
|
'use strict';
|
||
|
|
||
|
var nameEntryFactory = require('./implementation/Name'),
|
||
|
createCategoryValue = require('../../../helper/CategoryHelper').createCategoryValue,
|
||
|
is = require('bpmn-js/lib/util/ModelUtil').is,
|
||
|
getBusinessObject = require('bpmn-js/lib/util/ModelUtil').getBusinessObject;
|
||
|
|
||
|
module.exports = function(group, element, bpmnFactory, canvas, translate) {
|
||
|
|
||
|
function initializeCategory(semantic) {
|
||
|
var rootElement = canvas.getRootElement(),
|
||
|
definitions = getBusinessObject(rootElement).$parent,
|
||
|
categoryValue = createCategoryValue(definitions, bpmnFactory);
|
||
|
|
||
|
semantic.categoryValueRef = categoryValue;
|
||
|
|
||
|
}
|
||
|
|
||
|
function setGroupName(element, values) {
|
||
|
var bo = getBusinessObject(element),
|
||
|
categoryValueRef = bo.categoryValueRef;
|
||
|
|
||
|
if (!categoryValueRef) {
|
||
|
initializeCategory(bo);
|
||
|
}
|
||
|
|
||
|
// needs direct call to update categoryValue properly
|
||
|
return {
|
||
|
cmd: 'element.updateLabel',
|
||
|
context: {
|
||
|
element: element,
|
||
|
newLabel: values.categoryValue
|
||
|
}
|
||
|
};
|
||
|
}
|
||
|
|
||
|
function getGroupName(element) {
|
||
|
var bo = getBusinessObject(element),
|
||
|
value = (bo.categoryValueRef || {}).value;
|
||
|
|
||
|
return { categoryValue: value };
|
||
|
}
|
||
|
|
||
|
if (!is(element, 'bpmn:Collaboration')) {
|
||
|
|
||
|
var options;
|
||
|
if (is(element, 'bpmn:TextAnnotation')) {
|
||
|
options = { modelProperty: 'text', label: translate('Text') };
|
||
|
} else if (is(element, 'bpmn:Group')) {
|
||
|
options = {
|
||
|
modelProperty: 'categoryValue',
|
||
|
label: translate('Category Value'),
|
||
|
get: getGroupName,
|
||
|
set: setGroupName
|
||
|
};
|
||
|
}
|
||
|
|
||
|
// name
|
||
|
group.entries = group.entries.concat(nameEntryFactory(element, options, translate));
|
||
|
|
||
|
}
|
||
|
|
||
|
};
|