76 lines
2.1 KiB
JavaScript
76 lines
2.1 KiB
JavaScript
|
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'
|
||
|
];
|