146 lines
3.1 KiB
JavaScript
146 lines
3.1 KiB
JavaScript
/**
|
|
* 自定义左侧工具栏
|
|
*/
|
|
import { assign } from "min-dash";
|
|
|
|
export default function CustomPalette(
|
|
palette,
|
|
create,
|
|
elementFactory,
|
|
handTool,
|
|
lassoTool,
|
|
spaceTool,
|
|
globalConnect,
|
|
translate
|
|
) {
|
|
this.create = create;
|
|
this.elementFactory = elementFactory;
|
|
this.handTool = handTool;
|
|
this.lassoTool = lassoTool;
|
|
this.spaceTool = spaceTool;
|
|
this.globalConnect = globalConnect;
|
|
this.translate = translate;
|
|
|
|
palette.registerProvider(this);
|
|
}
|
|
|
|
CustomPalette.$inject = [
|
|
"palette",
|
|
"create",
|
|
"elementFactory",
|
|
"handTool",
|
|
"lassoTool",
|
|
"spaceTool",
|
|
"globalConnect",
|
|
"translate"
|
|
];
|
|
|
|
CustomPalette.prototype.getPaletteEntries = function (element) {
|
|
const {
|
|
create,
|
|
elementFactory,
|
|
handTool,
|
|
lassoTool,
|
|
spaceTool,
|
|
globalConnect,
|
|
translate
|
|
} = this;
|
|
|
|
function createAction(type, group, className, title, options) {
|
|
function createListener(event) {
|
|
var shape = elementFactory.createShape(assign({ type: type }, options));
|
|
|
|
if (options) {
|
|
shape.businessObject.di.isExpanded = options.isExpanded;
|
|
}
|
|
|
|
create.start(event, shape);
|
|
}
|
|
|
|
var shortType = type.replace(/^bpmn:/, "");
|
|
|
|
return {
|
|
group: group,
|
|
className: className,
|
|
title: title || translate("Create {type}", { type: shortType }),
|
|
action: {
|
|
dragstart: createListener,
|
|
click: createListener
|
|
}
|
|
};
|
|
}
|
|
|
|
return {
|
|
'hand-tool': {
|
|
group: 'tools',
|
|
className: 'bpmn-icon-hand-tool',
|
|
title: '激活抓手工具',
|
|
action: {
|
|
click: function(event) {
|
|
handTool.activateHand(event);
|
|
}
|
|
}
|
|
},
|
|
"lasso-tool": {
|
|
group: "tools",
|
|
className: "bpmn-icon-lasso-tool",
|
|
title: "激活套索工具",
|
|
action: {
|
|
click: function (event) {
|
|
lassoTool.activateSelection(event);
|
|
}
|
|
}
|
|
},
|
|
'space-tool': {
|
|
group: 'tools',
|
|
className: 'bpmn-icon-space-tool',
|
|
title: translate('Activate the create/remove space tool'),
|
|
action: {
|
|
click: function(event) {
|
|
spaceTool.activateSelection(event);
|
|
}
|
|
}
|
|
},
|
|
'global-connect-tool': {
|
|
group: 'tools',
|
|
className: 'bpmn-icon-connection-multi',
|
|
title: translate('Activate the global connect tool'),
|
|
action: {
|
|
click: function(event) {
|
|
globalConnect.start(event);
|
|
}
|
|
}
|
|
},
|
|
|
|
"tool-separator": {
|
|
group: "tools",
|
|
separator: true
|
|
},
|
|
|
|
"create.start-event": createAction(
|
|
"bpmn:StartEvent",
|
|
"event",
|
|
"bpmn-icon-start-event-none",
|
|
"创建开始节点"
|
|
),
|
|
"create.end-event": createAction(
|
|
"bpmn:EndEvent",
|
|
"event",
|
|
"bpmn-icon-end-event-none",
|
|
"创建结束节点"
|
|
),
|
|
"create.user-task": createAction(
|
|
"bpmn:UserTask",
|
|
"activity",
|
|
"bpmn-icon-user-task",
|
|
"创建用户任务"
|
|
),
|
|
"create.exclusive-gateway": createAction(
|
|
"bpmn:ExclusiveGateway",
|
|
"gateway",
|
|
"bpmn-icon-gateway-xor",
|
|
"创建排他网关"
|
|
)
|
|
};
|
|
};
|