主要对象

new BPMN对象时,流程及对象结构如下图



依赖注入

在初始化bpmn对象时有传入additionalModules进行自定义操作,具体是如何实现这种模块化的管理,主要是用到了依赖注入https://github.com/nikku/didi。

继续查看bpmn实例对象发现有injector对象,该对象即类似java的ICO容器,容器负责实例化、定位、配置对象及建立这些对象间的依赖。对象主要开放get,invoke两个API,bpmn对象的get,invoke即指定injector对象的get ,invoke。

举个例子

如果要自定义pallete,代码大致如下





1.depends 显示声明依赖,在diagram.js中根据该依赖生成new injector需要的模块数组

2.init new injector创建容器后,并未执行constrnctor等方法,所以diggram.js根据该节点解析模块,执行模块方法

3.如customPallete构造时,获取到依赖注入的pallete对象,调用该对象的registerProvider注册当前的对象。pallete进行绘制操作时可以从注册的对象中获取各元素节点

最新文章

  1. C++ 回调函数的定义与用法
  2. linux Ubuntu(Segmentation fault)段错误出现原因及调试方法
  3. 给Asp.Net MVC及WebApi添加路由优先级
  4. Java for LeetCode 209 Minimum Size Subarray Sum
  5. JavaScript编码风格指南(中文版)
  6. ArcGIS Javascript查询数据库并添加到地图上
  7. Android API 21 Toolbar Padding
  8. EntityFramework 基础的crud
  9. 语音直播是否真能让国内网红向“Creator”转变?
  10. 实验二Step1-有序顺序表
  11. bootstrap3-typeahead 自动补全
  12. 深入了解float
  13. Android studio无法更新 提示网络连接失败
  14. javascript 对象的复制
  15. (简单) FZU 1686 神龙的难题 , DLX+可重复覆盖。
  16. transform 各种影响
  17. JAVAEE第四周
  18. springboot学习随笔(三):Controller参数映射
  19. 搭建activemq服务
  20. python pynput监听键盘

热门文章

  1. 结构型模式 - 享元模式Flyweight
  2. BIGO 如何做到夜间同时运行 2.4K 个工作流实例?
  3. 《Terraform 101 从入门到实践》 Terraform在公有云GCP上的应用
  4. 使用GetDIBits()获取Windows位图数据的标准用法,解决内存、堆栈报错问题
  5. UEFI引导安装UBUNUT
  6. ft5426触摸屏I2C
  7. 【多线程与高并发】- 浅谈volatile
  8. EULAR2021_推文_大多数免疫抑制剂对辉瑞新冠疫苗效果影响小
  9. 在vs code中进行本地调试和开启本地服务器
  10. vue浏览器全屏 非全屏切换 按esc退出全屏