bpmnPalette.ts 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. // bpmn-js工具栏默认配置
  2. import cn from '../translate/cn';
  3. function getDi(element: any) {
  4. return element && element.di;
  5. }
  6. const bpmnPalette = (paletteProvider: any) => {
  7. const actions = {},
  8. create = paletteProvider._create,
  9. elementFactory = paletteProvider._elementFactory,
  10. spaceTool = paletteProvider._spaceTool,
  11. lassoTool = paletteProvider._lassoTool,
  12. handTool = paletteProvider._handTool,
  13. globalConnect = paletteProvider._globalConnect,
  14. translate = paletteProvider._translate;
  15. function createAction(type: any, group: any, className: any, title: any, options?: any) {
  16. function createListener(event: any) {
  17. var shape = elementFactory.createShape(Object.assign({ type: type, name11: 'csj' }, options));
  18. if (options) {
  19. var di = getDi(shape);
  20. di.isExpanded = options.isExpanded;
  21. }
  22. create.start(event, shape);
  23. }
  24. var shortType = type.replace(/^bpmn:/, '');
  25. return {
  26. group: group,
  27. className: className,
  28. title: title || translate('Create {type}', { type: shortType }),
  29. action: {
  30. dragstart: createListener,
  31. click: createListener,
  32. },
  33. };
  34. }
  35. function createSubprocess(event: any) {
  36. var subProcess = elementFactory.createShape({
  37. type: 'bpmn:SubProcess',
  38. x: 0,
  39. y: 0,
  40. isExpanded: false,
  41. });
  42. //createShape 创建新的图表形状
  43. var startEvent = elementFactory.createShape({
  44. type: 'bpmn:StartEvent',
  45. x: 40,
  46. y: 82,
  47. parent: subProcess,
  48. });
  49. create.start(event, [subProcess, startEvent], {
  50. hints: {
  51. autoSelect: [subProcess],
  52. },
  53. });
  54. }
  55. function createParticipant(event: any) {
  56. create.start(event, elementFactory.createParticipantShape());
  57. }
  58. Object.assign(actions, {
  59. 'hand-tool': {
  60. group: 'tools',
  61. className: 'bpmn-icon-hand-tool',
  62. title: translate(cn['Activate the hand tool']),
  63. action: {
  64. click: function (event: any) {
  65. handTool.activateHand(event);
  66. },
  67. },
  68. },
  69. 'lasso-tool': {
  70. group: 'tools',
  71. className: 'bpmn-icon-lasso-tool',
  72. title: translate(cn['Activate the lasso tool']),
  73. action: {
  74. click: function (event: any) {
  75. lassoTool.activateSelection(event);
  76. },
  77. },
  78. },
  79. 'space-tool': {
  80. group: 'tools',
  81. className: 'bpmn-icon-space-tool',
  82. title: translate(cn['Activate the create/remove space tool']),
  83. action: {
  84. click: function (event: any) {
  85. spaceTool.activateSelection(event);
  86. },
  87. },
  88. },
  89. 'global-connect-tool': {
  90. group: 'tools',
  91. className: 'bpmn-icon-connection-multi',
  92. title: translate(cn['Activate the global connect tool']),
  93. action: {
  94. click: function (event: any) {
  95. globalConnect.start(event);
  96. },
  97. },
  98. },
  99. 'tool-separator': {
  100. group: 'tools',
  101. separator: true,
  102. },
  103. 'create.start-event': createAction('bpmn:StartEvent', 'event', 'bpmn-icon-start-event-none', translate(cn['Create StartEvent'])),
  104. 'create.intermediate-event': createAction(
  105. 'bpmn:IntermediateThrowEvent',
  106. 'event',
  107. 'bpmn-icon-intermediate-event-none',
  108. translate(cn['Create Intermediate/Boundary Event']),
  109. ),
  110. 'create.end-event': createAction('bpmn:EndEvent', 'event', 'bpmn-icon-end-event-none', translate(cn['Create EndEvent'])),
  111. 'create.exclusive-gateway': createAction('bpmn:ExclusiveGateway', 'gateway', 'bpmn-icon-gateway-none', translate(cn['Create Gateway'])),
  112. 'create.task': createAction('bpmn:Task', 'activity', 'bpmn-icon-task', translate(cn['Create Task'])),
  113. 'create.data-object': createAction('bpmn:DataObjectReference', 'data-object', 'bpmn-icon-data-object', translate(cn['Create DataObjectReference'])),
  114. 'create.data-store': createAction('bpmn:DataStoreReference', 'data-store', 'bpmn-icon-data-store', translate(cn['Create DataStoreReference'])),
  115. 'create.subprocess-expanded': {
  116. group: 'activity',
  117. className: 'bpmn-icon-subprocess-expanded',
  118. title: translate(cn['Create expanded SubProcess']),
  119. action: {
  120. dragstart: createSubprocess,
  121. click: createSubprocess,
  122. },
  123. },
  124. 'create.participant-expanded': {
  125. group: 'collaboration',
  126. className: 'bpmn-icon-participant',
  127. title: translate(cn['Create Pool/Participant']),
  128. action: {
  129. dragstart: createParticipant,
  130. click: createParticipant,
  131. },
  132. },
  133. 'create.group': createAction('bpmn:Group', 'artifact', 'bpmn-icon-group', translate(cn['Create Group'])),
  134. });
  135. return actions;
  136. };
  137. export default bpmnPalette;