123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- 'use strict';
- var ImplementationTypeHelper = require('../../../helper/ImplementationTypeHelper'),
- InputOutputHelper = require('../../../helper/InputOutputHelper');
- var utils = require('../../../Utils'),
- escapeHTML = utils.escapeHTML,
- triggerClickEvent = utils.triggerClickEvent;
- var implementationType = require('./implementation/ImplementationType'),
- delegate = require('./implementation/Delegate'),
- external = require('./implementation/External'),
- callable = require('./implementation/Callable'),
- resultVariable = require('./implementation/ResultVariable');
- var entryFactory = require('../../../factory/EntryFactory');
- var domQuery = require('min-dom').query,
- domClosest = require('min-dom').closest,
- domClasses = require('min-dom').classes;
- function getImplementationType(element) {
- return ImplementationTypeHelper.getImplementationType(element);
- }
- function getBusinessObject(element) {
- return ImplementationTypeHelper.getServiceTaskLikeBusinessObject(element);
- }
- function isDmnCapable(element) {
- return ImplementationTypeHelper.isDmnCapable(element);
- }
- function isExternalCapable(element) {
- return ImplementationTypeHelper.isExternalCapable(element);
- }
- function isServiceTaskLike(element) {
- return ImplementationTypeHelper.isServiceTaskLike(element);
- }
- module.exports = function(group, element, bpmnFactory, translate) {
- if (!isServiceTaskLike(getBusinessObject(element))) {
- return;
- }
- var hasDmnSupport = isDmnCapable(element);
- var hasExternalSupport = isExternalCapable(getBusinessObject(element));
- // implementation type ////////////////////////////////////
- group.entries = group.entries.concat(implementationType(element, bpmnFactory, {
- getBusinessObject: getBusinessObject,
- getImplementationType: getImplementationType,
- hasDmnSupport: hasDmnSupport,
- hasExternalSupport: hasExternalSupport,
- hasServiceTaskLikeSupport: true
- }, translate));
- // delegate (class, expression, delegateExpression) //////////
- group.entries = group.entries.concat(delegate(element, bpmnFactory, {
- getBusinessObject: getBusinessObject,
- getImplementationType: getImplementationType
- }, translate));
- // result variable /////////////////////////////////////////
- group.entries = group.entries.concat(resultVariable(element, bpmnFactory, {
- getBusinessObject: getBusinessObject,
- getImplementationType: getImplementationType,
- hideResultVariable: function(element, node) {
- return getImplementationType(element) !== 'expression';
- }
- }, translate));
- // external //////////////////////////////////////////////////
- if (hasExternalSupport) {
- group.entries = group.entries.concat(external(element, bpmnFactory, {
- getBusinessObject: getBusinessObject,
- getImplementationType: getImplementationType
- }, translate));
- }
- // dmn ////////////////////////////////////////////////////////
- if (hasDmnSupport) {
- group.entries = group.entries.concat(callable(element, bpmnFactory, {
- getCallableType: getImplementationType
- }, translate));
- }
- // connector ////////////////////////////////////////////////
- var isConnector = function(element) {
- return getImplementationType(element) === 'connector';
- };
- group.entries.push(entryFactory.link({
- id: 'configureConnectorLink',
- label: translate('Configure Connector'),
- handleClick: function(element, node, event) {
- var connectorTabEl = getTabNode(node, 'connector');
- if (connectorTabEl) {
- triggerClickEvent(connectorTabEl);
- }
- // suppress actual link click
- return false;
- },
- showLink: function(element, node) {
- var link = domQuery('a', node);
- link.textContent = '';
- domClasses(link).remove('bpp-error-message');
- if (isConnector(element)) {
- var connectorId = InputOutputHelper.getConnector(element).get('connectorId');
- if (connectorId) {
- link.textContent = translate('Configure Connector');
- } else {
- link.innerHTML = '<span class="bpp-icon-warning"></span> ' + escapeHTML(translate('Must configure Connector'));
- domClasses(link).add('bpp-error-message');
- }
- return true;
- }
- return false;
- }
- }));
- };
- // helpers ///////////////////////////
- function getTabNode(el, id) {
- var containerEl = domClosest(el, '.bpp-properties-panel');
- return domQuery('a[data-tab-target="' + id + '"]', containerEl);
- }
|