LinkProps.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. 'use strict';
  2. var is = require('bpmn-js/lib/util/ModelUtil').is,
  3. getBusinessObject = require('bpmn-js/lib/util/ModelUtil').getBusinessObject,
  4. entryFactory = require('../../../factory/EntryFactory'),
  5. cmdHelper = require('../../../helper/CmdHelper');
  6. var forEach = require('lodash/forEach');
  7. function getLinkEventDefinition(element) {
  8. var bo = getBusinessObject(element);
  9. var linkEventDefinition = null;
  10. if (bo.eventDefinitions) {
  11. forEach(bo.eventDefinitions, function(eventDefinition) {
  12. if (is(eventDefinition, 'bpmn:LinkEventDefinition')) {
  13. linkEventDefinition = eventDefinition;
  14. }
  15. });
  16. }
  17. return linkEventDefinition;
  18. }
  19. module.exports = function(group, element, translate) {
  20. var linkEvents = [ 'bpmn:IntermediateThrowEvent', 'bpmn:IntermediateCatchEvent' ];
  21. forEach(linkEvents, function(event) {
  22. if (is(element, event)) {
  23. var linkEventDefinition = getLinkEventDefinition(element);
  24. if (linkEventDefinition) {
  25. var entry = entryFactory.textField({
  26. id: 'link-event',
  27. label: translate('Link Name'),
  28. modelProperty: 'link-name'
  29. });
  30. entry.get = function() {
  31. return { 'link-name': linkEventDefinition.get('name') };
  32. };
  33. entry.set = function(element, values) {
  34. var newProperties = {
  35. name: values['link-name']
  36. };
  37. return cmdHelper.updateBusinessObject(element, linkEventDefinition, newProperties);
  38. };
  39. group.entries.push(entry);
  40. }
  41. }
  42. });
  43. };