index.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. 'use strict';
  2. var ChangeElementTemplateHandler = require('./ChangeElementTemplateHandler');
  3. var getTemplate = require('../Helper').getTemplate,
  4. getDefaultTemplate = require('../Helper').getDefaultTemplate;
  5. function registerHandlers(commandStack, elementTemplates, eventBus, elementRegistry) {
  6. commandStack.registerHandler(
  7. 'propertiesPanel.activiti.changeTemplate',
  8. ChangeElementTemplateHandler
  9. );
  10. // apply default element templates on shape creation
  11. eventBus.on([ 'commandStack.shape.create.postExecuted' ], function(context) {
  12. applyDefaultTemplate(context.context.shape, elementTemplates, commandStack);
  13. });
  14. // apply default element templates on connection creation
  15. eventBus.on([ 'commandStack.connection.create.postExecuted' ], function(context) {
  16. applyDefaultTemplate(context.context.connection, elementTemplates, commandStack);
  17. });
  18. }
  19. registerHandlers.$inject = [ 'commandStack', 'elementTemplates', 'eventBus', 'elementRegistry' ];
  20. module.exports = {
  21. __init__: [ registerHandlers ]
  22. };
  23. function applyDefaultTemplate(element, elementTemplates, commandStack) {
  24. if (!getTemplate(element, elementTemplates)
  25. && getDefaultTemplate(element, elementTemplates)) {
  26. var command = 'propertiesPanel.activiti.changeTemplate';
  27. var commandContext = {
  28. element: element,
  29. newTemplate: getDefaultTemplate(element, elementTemplates)
  30. };
  31. commandStack.execute(command, commandContext);
  32. }
  33. }