NameProps.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. 'use strict';
  2. var nameEntryFactory = require('./implementation/Name'),
  3. createCategoryValue = require('../../../helper/CategoryHelper').createCategoryValue,
  4. is = require('bpmn-js/lib/util/ModelUtil').is,
  5. getBusinessObject = require('bpmn-js/lib/util/ModelUtil').getBusinessObject;
  6. module.exports = function(group, element, bpmnFactory, canvas, translate) {
  7. function initializeCategory(semantic) {
  8. var rootElement = canvas.getRootElement(),
  9. definitions = getBusinessObject(rootElement).$parent,
  10. categoryValue = createCategoryValue(definitions, bpmnFactory);
  11. semantic.categoryValueRef = categoryValue;
  12. }
  13. function setGroupName(element, values) {
  14. var bo = getBusinessObject(element),
  15. categoryValueRef = bo.categoryValueRef;
  16. if (!categoryValueRef) {
  17. initializeCategory(bo);
  18. }
  19. // needs direct call to update categoryValue properly
  20. return {
  21. cmd: 'element.updateLabel',
  22. context: {
  23. element: element,
  24. newLabel: values.categoryValue
  25. }
  26. };
  27. }
  28. function getGroupName(element) {
  29. var bo = getBusinessObject(element),
  30. value = (bo.categoryValueRef || {}).value;
  31. return { categoryValue: value };
  32. }
  33. if (!is(element, 'bpmn:Collaboration')) {
  34. var options;
  35. if (is(element, 'bpmn:TextAnnotation')) {
  36. options = { modelProperty: 'text', label: translate('Text') };
  37. } else if (is(element, 'bpmn:Group')) {
  38. options = {
  39. modelProperty: 'categoryValue',
  40. label: translate('Category Value'),
  41. get: getGroupName,
  42. set: setGroupName
  43. };
  44. }
  45. // name
  46. group.entries = group.entries.concat(nameEntryFactory(element, options, translate));
  47. }
  48. };