casemanagement-js-properties-panel
Version:
A simple properties panel for cmmn-js
180 lines (135 loc) • 5.28 kB
JavaScript
;
var inherits = require('inherits');
var CmmnElementHelper = require('../../helper/CmmnElementHelper'),
isCMMNEdge = CmmnElementHelper.isCMMNEdge,
getCMMNElementRef = CmmnElementHelper.getCMMNElementRef;
var PropertiesActivator = require('../../PropertiesActivator');
// item properties
var caseProps = require('../cmmn/parts/CaseProps'),
idProps = require('../cmmn/parts/IdProps'),
nameProps = require('../cmmn/parts/NameProps'),
documentationProps = require('../cmmn/parts/DocumentationProps');
// detail properties
var ifPartProps = require('../cmmn/parts/IfPartProps'),
humanTaskProps = require('./parts/HumanTaskProps'),
processTaskProps = require('./parts/ProcessTaskProps'),
onPartProps = require('../cmmn/parts/OnPartProps'),
caseRolesProps = require('./parts/CaseplanModelProps');
// plan item control properties
var planItemControlProps = require('../cmmn/parts/PlanItemControlProps');
// definition props
var definitionIdProps = require('../cmmn/parts/DefinitionIdProps'),
definitionNameProps = require('../cmmn/parts/DefinitionNameProps'),
definitionDocumentationProps = require('../cmmn/parts/DefinitionDocumentationProps'),
callableProps = require('../cmmn/parts/CallableProps');
function createGeneralTabGroups(element, cmmnFactory, elementRegistry, itemRegistry, cmmnRules) {
var generalGroup = {
id: 'general',
label: 'General',
entries: []
};
caseProps(generalGroup, element, cmmnFactory, elementRegistry, itemRegistry, cmmnRules);
idProps(generalGroup, element, cmmnFactory, elementRegistry, itemRegistry, cmmnRules);
nameProps(generalGroup, element, cmmnFactory, elementRegistry, itemRegistry, cmmnRules);
var detailsGroup = {
id: 'details',
label: 'Details',
entries: []
};
onPartProps(detailsGroup, element, cmmnFactory, elementRegistry, itemRegistry);
ifPartProps(detailsGroup, element, cmmnFactory, elementRegistry, itemRegistry);
humanTaskProps(detailsGroup, element, cmmnFactory, elementRegistry, itemRegistry);
processTaskProps(detailsGroup, element, cmmnFactory, elementRegistry, itemRegistry);
callableProps(detailsGroup, element, cmmnFactory, elementRegistry, itemRegistry);
caseRolesProps(detailsGroup, element, cmmnFactory, elementRegistry, itemRegistry);
var documentationGroup = {
id: 'documentation',
label: 'Documentation',
entries: []
};
documentationProps(documentationGroup, element, cmmnFactory, elementRegistry, itemRegistry, cmmnRules);
return [
generalGroup,
detailsGroup,
documentationGroup
];
}
function createRulesTabGroups(element, cmmnFactory, elementRegistry, itemRegistry, cmmnRules) {
var itemControlGroup = {
id: 'itemControl',
label: 'Item Control',
entries: []
};
planItemControlProps(itemControlGroup, element, cmmnFactory, elementRegistry, itemRegistry, cmmnRules);
var defaultControlGroup = {
id: 'defaultControl',
label: 'Default Control',
entries: []
};
planItemControlProps(defaultControlGroup, element, cmmnFactory, elementRegistry, itemRegistry, cmmnRules, {
isDefaultControl: true
});
return [
itemControlGroup,
defaultControlGroup
];
}
function createDefinitionTabGroups(element, cmmnFactory, elementRegistry, itemRegistry, cmmnRules) {
var detailsGroup = {
id: 'definitionDetails',
label: 'Details',
entries: []
};
definitionIdProps(detailsGroup, element, cmmnFactory, elementRegistry, itemRegistry, cmmnRules);
definitionNameProps(detailsGroup, element, cmmnFactory, elementRegistry, itemRegistry, cmmnRules);
var documentationGroup = {
id: 'definitionDocumentation',
label: 'Documentation',
entries: []
};
definitionDocumentationProps(documentationGroup, element, cmmnFactory, elementRegistry, itemRegistry, cmmnRules);
return [
detailsGroup,
documentationGroup
];
}
function CasePropertiesProvider(eventBus, cmmnFactory, elementRegistry, itemRegistry, cmmnRules) {
PropertiesActivator.call(this, eventBus);
this.getTabs = function(element) {
var generalTab = {
id: 'general',
label: 'General',
groups: createGeneralTabGroups(element, cmmnFactory, elementRegistry, itemRegistry, cmmnRules)
};
var rulesTab = {
id: 'rules',
label: 'Rules',
groups: createRulesTabGroups(element, cmmnFactory, elementRegistry, itemRegistry, cmmnRules)
};
var definitionTab = {
id: 'definition',
label: 'Definition',
groups: createDefinitionTabGroups(element, cmmnFactory, elementRegistry, itemRegistry, cmmnRules)
};
return [
generalTab,
rulesTab,
definitionTab
];
};
this.getHeaderLabel = function(element) {
if (isCMMNEdge(element)) {
element = getCMMNElementRef(element) || element;
}
return element.id;
};
}
CasePropertiesProvider.$inject = [
'eventBus',
'cmmnFactory',
'elementRegistry',
'itemRegistry',
'cmmnRules'
];
inherits(CasePropertiesProvider, PropertiesActivator);
module.exports = CasePropertiesProvider;