bpmn-js-properties-panel
Version:
A simple properties panel for bpmn-js
75 lines (55 loc) • 2 kB
JavaScript
;
var inherits = require('inherits');
var PropertiesActivator = require('../../PropertiesActivator');
var processProps = require('./parts/ProcessProps'),
eventProps = require('./parts/EventProps'),
linkProps = require('./parts/LinkProps'),
documentationProps = require('./parts/DocumentationProps'),
idProps = require('./parts/IdProps'),
nameProps = require('./parts/NameProps'),
executableProps = require('./parts/ExecutableProps');
function createGeneralTabGroups(element, bpmnFactory, elementRegistry, translate) {
var generalGroup = {
id: 'general',
label: translate('General'),
entries: []
};
idProps(generalGroup, element, translate);
nameProps(generalGroup, element, translate);
processProps(generalGroup, element, translate);
executableProps(generalGroup, element, translate);
var detailsGroup = {
id: 'details',
label: translate('Details'),
entries: []
};
linkProps(detailsGroup, element, translate);
eventProps(detailsGroup, element, bpmnFactory, elementRegistry, translate);
var documentationGroup = {
id: 'documentation',
label: translate('Documentation'),
entries: []
};
documentationProps(documentationGroup, element, bpmnFactory, translate);
return [
generalGroup,
detailsGroup,
documentationGroup
];
}
function BpmnPropertiesProvider(eventBus, bpmnFactory, elementRegistry, translate) {
PropertiesActivator.call(this, eventBus);
this.getTabs = function(element) {
var generalTab = {
id: 'general',
label: translate('General'),
groups: createGeneralTabGroups(element, bpmnFactory, elementRegistry, translate)
};
return [
generalTab
];
};
}
BpmnPropertiesProvider.$inject = [ 'eventBus', 'bpmnFactory', 'elementRegistry', 'translate' ];
inherits(BpmnPropertiesProvider, PropertiesActivator);
module.exports = BpmnPropertiesProvider;