export default class CustomContextPad { constructor(config, contextPad, create, elementFactory, injector, translate) { this.create = create; this.elementFactory = elementFactory; this.translate = translate; //自动摆放位置 if (config.autoPlace !== false) { this.autoPlace = injector.get('autoPlace', false); } //注册工具 contextPad.registerProvider(this); } getContextPadEntries(element) { const { autoPlace, create, elementFactory, translate } = this; function appendUserTask(event, element) { if (autoPlace) { const shape = elementFactory.createShape({ type: 'bpmn:UserTask' }); autoPlace.append(element, shape); } else { appendUserTaskStart(event, element); } } function appendUserTaskStart(event) { const shape = elementFactory.createShape({ type: 'bpmn:UserTask' }); create.start(event, shape, element); } function appendCallActivityStart(event) { const shape = elementFactory.createShape({ type: 'bpmn:CallActivity' }); create.start(event, shape, element); } function appendCallActivity(event, element) { if (autoPlace) { const shape = elementFactory.createShape({ type: 'bpmn:CallActivity' }); autoPlace.append(element, shape); } else { appendCallActivityStart(event, element); } } return { 'append.user-task': { group: 'model', className: 'bpmn-icon-user-task', title: translate('Append ServiceTask'), action: { click: appendUserTask, dragstart: appendUserTaskStart } }, 'append.call-activity':{ group: 'model', className: 'bpmn-icon-call-activity', title: translate('Append CallActivity'), action: { click: appendCallActivity, dragstart: appendCallActivityStart } } }; } } CustomContextPad.$inject = [ 'config', 'contextPad', 'create', 'elementFactory', 'injector', 'translate' ];