ruoyi-vue-nocode/ruoyi-ui/ruoyi-bpmnjs/resources/properties-panel/provider/bpmn/parts/NameProps.js
2022-08-11 16:10:41 +08:00

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));
}
};