chore(context-pad): make lane actions available
Lanes are going to be modeled via the parents context-pad only. This commit * removes lanes from the palette * adds lane actions to the context-pad Related to #379
This commit is contained in:
parent
0831cae843
commit
6a3bdd32ea
|
@ -4,6 +4,8 @@
|
|||
var assign = require('lodash/object/assign'),
|
||||
forEach = require('lodash/collection/forEach'),
|
||||
is = require('../../util/ModelUtil').is,
|
||||
isAny = require('../modeling/util/ModelingUtil').isAny,
|
||||
getChildLanes = require('../modeling/util/LaneUtil').getChildLanes,
|
||||
isEventSubProcess = require('../../util/DiUtil').isEventSubProcess;
|
||||
|
||||
|
||||
|
@ -37,6 +39,9 @@ ContextPadProvider.$inject = [
|
|||
'canvas'
|
||||
];
|
||||
|
||||
module.exports = ContextPadProvider;
|
||||
|
||||
|
||||
ContextPadProvider.prototype.getContextPadEntries = function(element) {
|
||||
|
||||
var contextPad = this._contextPad,
|
||||
|
@ -54,7 +59,7 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) {
|
|||
return actions;
|
||||
}
|
||||
|
||||
var bpmnElement = element.businessObject;
|
||||
var businessObject = element.businessObject;
|
||||
|
||||
function startConnect(event, element, autoActivate) {
|
||||
connect.start(event, element, autoActivate);
|
||||
|
@ -111,12 +116,69 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) {
|
|||
};
|
||||
}
|
||||
|
||||
if (is(bpmnElement, 'bpmn:FlowNode')) {
|
||||
if (isAny(businessObject, [ 'bpmn:Lane', 'bpmn:Participant' ])) {
|
||||
|
||||
if (!is(bpmnElement, 'bpmn:EndEvent') &&
|
||||
!is(bpmnElement, 'bpmn:EventBasedGateway') &&
|
||||
!isEventType(bpmnElement, 'bpmn:IntermediateThrowEvent', 'bpmn:LinkEventDefinition') &&
|
||||
!isEventSubProcess(bpmnElement)) {
|
||||
var childLanes = getChildLanes(element);
|
||||
|
||||
assign(actions, {
|
||||
'lane-insert-above': {
|
||||
group: 'lane-insert-above',
|
||||
className: 'icon-lane-insert-above',
|
||||
title: 'Add Lane above',
|
||||
action: {
|
||||
click: function(event, element) {
|
||||
modeling.addLane(element, 'top');
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (childLanes.length < 2) {
|
||||
assign(actions, {
|
||||
'lane-divide-two': {
|
||||
group: 'lane-divide',
|
||||
className: 'icon-lane-divide-two',
|
||||
title: 'Divide into two Lanes',
|
||||
action: {
|
||||
click: function(event, element) {
|
||||
modeling.splitLane(element, 2);
|
||||
}
|
||||
}
|
||||
},
|
||||
'lane-divide-three': {
|
||||
group: 'lane-divide',
|
||||
className: 'icon-lane-divide-three',
|
||||
title: 'Divide into three Lanes',
|
||||
action: {
|
||||
click: function(event, element) {
|
||||
modeling.splitLane(element, 3);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
assign(actions, {
|
||||
'lane-insert-below': {
|
||||
group: 'lane-insert-below',
|
||||
className: 'icon-lane-insert-below',
|
||||
title: 'Add Lane below',
|
||||
action: {
|
||||
click: function(event, element) {
|
||||
modeling.addLane(element, 'bottom');
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
if (is(businessObject, 'bpmn:FlowNode')) {
|
||||
|
||||
if (!is(businessObject, 'bpmn:EndEvent') &&
|
||||
!is(businessObject, 'bpmn:EventBasedGateway') &&
|
||||
!isEventType(businessObject, 'bpmn:IntermediateThrowEvent', 'bpmn:LinkEventDefinition') &&
|
||||
!isEventSubProcess(businessObject)) {
|
||||
|
||||
assign(actions, {
|
||||
'append.end-event': appendAction('bpmn:EndEvent', 'icon-end-event-none'),
|
||||
|
@ -127,7 +189,7 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) {
|
|||
});
|
||||
}
|
||||
|
||||
if (is(bpmnElement, 'bpmn:EventBasedGateway')) {
|
||||
if (is(businessObject, 'bpmn:EventBasedGateway')) {
|
||||
|
||||
assign(actions, {
|
||||
'append.receive-task': appendAction('bpmn:ReceiveTask', 'icon-receive-task'),
|
||||
|
@ -147,9 +209,9 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) {
|
|||
}
|
||||
}
|
||||
|
||||
if (is(bpmnElement, 'bpmn:FlowNode') ||
|
||||
(is(bpmnElement, 'bpmn:SequenceFlow') && (is(bpmnElement.sourceRef, 'bpmn:Activity') ||
|
||||
is(bpmnElement.sourceRef, 'bpmn:ExclusiveGateway') || is(bpmnElement.sourceRef, 'bpmn:InclusiveGateway')))) {
|
||||
var replaceOptions = bpmnReplace.getReplaceOptions(element);
|
||||
|
||||
if (replaceOptions.length) {
|
||||
// Replace menu entry
|
||||
assign(actions, {
|
||||
'replace': {
|
||||
|
@ -165,8 +227,7 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) {
|
|||
});
|
||||
}
|
||||
|
||||
if (is(bpmnElement, 'bpmn:FlowNode') ||
|
||||
is(bpmnElement, 'bpmn:InteractionNode')) {
|
||||
if (isAny(businessObject, [ 'bpmn:FlowNode', 'bpmn:InteractionNode' ])) {
|
||||
|
||||
assign(actions, {
|
||||
'append.text-annotation': appendAction('bpmn:TextAnnotation', 'icon-text-annotation'),
|
||||
|
@ -183,7 +244,7 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) {
|
|||
});
|
||||
}
|
||||
|
||||
if (is(bpmnElement, 'bpmn:DataObjectReference')) {
|
||||
if (is(businessObject, 'bpmn:DataObjectReference')) {
|
||||
assign(actions, {
|
||||
'connect': {
|
||||
group: 'connect',
|
||||
|
@ -227,6 +288,3 @@ function isEventType(eventBo, type, definition) {
|
|||
|
||||
return isType && isDefinition;
|
||||
}
|
||||
|
||||
|
||||
module.exports = ContextPadProvider;
|
||||
|
|
|
@ -58,10 +58,6 @@ PaletteProvider.prototype.getPaletteEntries = function(element) {
|
|||
create.start(event, elementFactory.createParticipantShape(collapsed));
|
||||
}
|
||||
|
||||
function createLane(event) {
|
||||
create.start(event, elementFactory.createShape({ type: 'bpmn:Lane' }));
|
||||
}
|
||||
|
||||
assign(actions, {
|
||||
'lasso-tool': {
|
||||
group: 'tools',
|
||||
|
@ -117,15 +113,6 @@ PaletteProvider.prototype.getPaletteEntries = function(element) {
|
|||
dragstart: createParticipant,
|
||||
click: createParticipant
|
||||
}
|
||||
},
|
||||
'create.lane': {
|
||||
group: 'collaboration',
|
||||
className: 'icon-lane',
|
||||
title: 'Create Lane',
|
||||
action: {
|
||||
dragstart: createLane,
|
||||
click: createLane
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ describe('features/palette', function() {
|
|||
var entries = domQuery.all('.entry', paletteElement);
|
||||
|
||||
// then
|
||||
expect(entries.length).to.equal(11);
|
||||
expect(entries.length).to.equal(10);
|
||||
}));
|
||||
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue