'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');
|
}
|