Skip to content
This repository was archived by the owner on May 12, 2021. It is now read-only.

Commit bf48ab1

Browse files
Dominik HornDominik Horn
authored andcommitted
Sequence Flow Expression + Exclusive Event Support
1 parent 8b4c1b0 commit bf48ab1

12 files changed

Lines changed: 180 additions & 9265 deletions

client/lib/custom/CustomElementFactory.js

Lines changed: 0 additions & 94 deletions
This file was deleted.

client/lib/custom/CustomPalette.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,9 @@ PaletteProvider.prototype.getPaletteEntries = function(element) {
121121
),
122122
'create.service-task': createAction(
123123
'bpmn:ServiceTask', 'activity', 'bpmn-icon-service-task'
124+
),
125+
'create.exclusive-gateway': createAction(
126+
'bpmn:ExclusiveGateway', 'gateway', 'bpmn-icon-gateway-xor'
124127
)
125128
});
126129

client/lib/custom/CustomReplaceMenuProvider.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ function CustomReplaceMenuProvider(popupMenu, modeling, moddle, bpmnReplace, rul
99

1010
inherits(CustomReplaceMenuProvider, ReplaceMenuProvider);
1111

12+
//For future element support!!
1213
CustomReplaceMenuProvider.prototype._createEntries = function(element, replaceOptions) {
1314
var options = ReplaceMenuProvider.prototype._createEntries.call(this, element, replaceOptions);
1415

client/lib/custom/CustomRules.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ CustomRules.prototype.init = function() {
4141
* Can shape be created on target container?
4242
*/
4343
function canCreate(source) {
44+
45+
if(is(source, 'bpmn:ExclusiveGateway')){
46+
return true;
47+
}
48+
4449
return !hasOutgoings(source);
4550
}
4651

@@ -49,8 +54,11 @@ CustomRules.prototype.init = function() {
4954
*/
5055
function canConnect(source, target) {
5156

57+
if(is(source, 'bpmn:ExclusiveGateway')){
58+
return true;
59+
}
5260

53-
return !hasOutgoings(source) && !hasIncomings(target);
61+
return !hasOutgoings(source);
5462

5563
}
5664

client/lib/custom/index.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
module.exports = {
22
__init__: [ 'paletteProvider', 'customRules', 'contextPadProvider', 'replaceMenuProvider' ],
3-
elementFactory: [ 'type', require('./CustomElementFactory') ],
43
paletteProvider: [ 'type', require('./CustomPalette') ],
54
customRules: [ 'type', require('./CustomRules') ],
65
replaceMenuProvider: [ 'type', require('./CustomReplaceMenuProvider') ],

client/lib/custom/modeler-options/Options.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ module.exports.AVAILABLE_REPLACE_ELEMENTS = [
99

1010
module.exports.AVAILABLE_CONTEXTPAD_ENTRIES = [
1111
'append.end-event',
12+
'append.gateway',
1213
'delete',
1314
'connect'
1415

client/lib/custom/propertyprovider/ZeebePropertiesProvider.js

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,19 @@
11
'use strict';
22

33

4-
var inherits = require('inherits');
4+
var inherits = require('inherits'),
5+
is = require('bpmn-js/lib/util/ModelUtil').is;
56

67
var PropertiesActivator = require('bpmn-js-properties-panel/lib/PropertiesActivator');
7-
var idProps = require('bpmn-js-properties-panel/lib/provider/bpmn/parts/IdProps'),
8-
nameProps = require('bpmn-js-properties-panel/lib/provider/bpmn/parts/NameProps'),
9-
executableProps = require('bpmn-js-properties-panel/lib/provider/bpmn/parts/ExecutableProps');
10-
11-
var is = require('bpmn-js/lib/util/ModelUtil').is;
12-
13-
var inputOutput = require('./parts/InputOutputProps'),
14-
inputOutputParameter = require('./parts/InputOutputParameterProps');
158

16-
var headers = require('./parts/HeadersProps');
17-
18-
var taskDefinition = require('./parts/TaskDefinitionProps');
9+
var idProps = require('bpmn-js-properties-panel/lib/provider/bpmn/parts/IdProps'),
10+
nameProps = require('bpmn-js-properties-panel/lib/provider/bpmn/parts/NameProps'),
11+
executableProps = require('bpmn-js-properties-panel/lib/provider/bpmn/parts/ExecutableProps'),
12+
inputOutput = require('./parts/InputOutputProps'),
13+
inputOutputParameter = require('./parts/InputOutputParameterProps'),
14+
headers = require('./parts/HeadersProps'),
15+
taskDefinition = require('./parts/TaskDefinitionProps'),
16+
sequenceFlowProps = require('./parts/SequenceFlowProps');
1917

2018

2119
var getInputOutputParameterLabel = function(param) {
@@ -42,6 +40,7 @@ function createGeneralTabGroups(element, bpmnFactory, elementRegistry, translate
4240
nameProps(generalGroup, element, translate);
4341
executableProps(generalGroup, element,translate);
4442
taskDefinition(generalGroup, element, bpmnFactory);
43+
sequenceFlowProps(generalGroup, element, bpmnFactory, translate);
4544

4645
return[
4746
generalGroup

client/lib/custom/propertyprovider/parts/HeadersProps.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
var properties = require('./implementation/Headers'),
22
elementHelper = require('bpmn-js-properties-panel/lib/helper/ElementHelper'),
3-
cmdHelper = require('bpmn-js-properties-panel/lib/helper/CmdHelper');
4-
3+
cmdHelper = require('bpmn-js-properties-panel/lib/helper/CmdHelper'),
4+
is = require('bpmn-js/lib/util/ModelUtil').is;
55

66
module.exports = function(group, element, bpmnFactory) {
77

8+
if(!is(element, 'bpmn:ServiceTask')){
9+
return;
10+
}
11+
812
var propertiesEntry = properties(element, bpmnFactory, {
913
id: 'headers',
1014
modelProperties: [ 'key', 'value' ],
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
'use strict';
22

33
var inputOutputParameter = require('./implementation/InputOutputParameter');
4+
var is = require('bpmn-js/lib/util/ModelUtil').is;
45

56
var assign = require('lodash/object/assign');
67

78
module.exports = function(group, element, bpmnFactory, options) {
89

10+
911
group.entries = group.entries.concat(inputOutputParameter(element, bpmnFactory, assign({}, options)));
1012

1113
};
Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
'use strict';
22

33
var inputOutput = require('./implementation/InputOutput');
4+
var is = require('bpmn-js/lib/util/ModelUtil').is;
45

56
module.exports = function(group, element, bpmnFactory) {
67

7-
var inputOutputEntry = inputOutput(element, bpmnFactory);
8+
var inputOutputEntry = inputOutput(element, bpmnFactory);
89

9-
group.entries = group.entries.concat(inputOutputEntry.entries);
10+
group.entries = group.entries.concat(inputOutputEntry.entries);
1011

11-
return {
12-
getSelectedParameter: inputOutputEntry.getSelectedParameter
13-
};
12+
return {
13+
getSelectedParameter: inputOutputEntry.getSelectedParameter
14+
};
1415

1516
};

0 commit comments

Comments
 (0)