taron133
2020-10-26 aa8d874c8a3287d41d26566ae32b6ed8d4557ff9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
'use strict';
 
var inherits = require('inherits');
var getBusinessObject = require('bpmn-js/lib/util/ModelUtil').getBusinessObject;
var BpmnRenderer = require('bpmn-js/lib/draw/BpmnRenderer');
 
var svgAttr = require('tiny-svg/lib/attr');
 
 
function ColorRenderer(injector, eventBus) {
  // set higher priority then a default 1000 for an existing BpmnRenderer
  var callPriority = 2000;
 
  injector.invoke(BpmnRenderer, this);
 
  var self = this;
 
  eventBus.on([ 'render.shape' ], callPriority, function(evt, context) {
    var element = context.element,
        visuals = context.gfx;
 
    // call default implementation
    var shape = self.drawShape(visuals, element);
 
    // 2D shape with default white color
    svgAttr(shape, {
      fill: getBackgroundColor(element) || '#ffffff'
    });
 
    // make sure default renderer is not called anymore
    //return shape;
  });
 
 
  eventBus.on([ 'render.connection' ], callPriority, function(evt, context) {
    var element = context.element,
        visuals = context.gfx;
 
    // call default implementation
    var shape = self.drawConnection(visuals, element);
 
    // line shape with default black color
    svgAttr(shape, {
      stroke: getBackgroundColor(element) || '#000000'
    });
 
    // make sure default renderer is not called anymore
    //return shape;
  });
}
 
inherits(ColorRenderer, BpmnRenderer);
 
module.exports = ColorRenderer;
 
 
ColorRenderer.$inject = [ 'injector', 'eventBus' ];
 
 
function getBackgroundColor(element) {
  var bo = getBusinessObject(element);
  return bo.di.get('color:background-color');
}