1 写在前面
本文介绍了camunda 对BPMN流程定义文件的解析实现。
该类库的JS框架采用的dojo
(了解下dojo与jquery的区别:http://blog.csdn.net/dojotoolkit/article/details/7682978)
这个类库有四个文件
Bpmn.js提供相应功能的接口。
三个组件:Executor.js——轻量级流程引擎
Renderer.js——通过dojo展现渲染流程图的组件
Transformer.js——解析流程图的组件
最坑爹的是camunda首页的流程模拟是用jquery框架和Raphael图形处理库,因此确定,除了Renderer组件,其他组件都能复用。
camunda首页还采用了bootstrap框架,并且自己拓展了相关组件,值得借鉴。
2 结构
src
-bpmn
-Bpmn.js
-Executor.js
-Renderer.js
-Transforme.js
test
-bpmn
-engine
-lib
-renderer
-resources
-transformer
-util
-runner.html
3 各类接口
3.1 bpmn.js
renderUrl(url, options)通过url解析流程图
render(bpmnXml, options)通过字符串解析流程图
zoom(factor)放大缩小
annotate(id, innerHTML, classesArray)注释
clear()清除
例子:
本文介绍了camunda 对BPMN流程定义文件的解析实现。
该类库的JS框架采用的dojo
(了解下dojo与jquery的区别:http://blog.csdn.net/dojotoolkit/article/details/7682978)
这个类库有四个文件
Bpmn.js提供相应功能的接口。
三个组件:Executor.js——轻量级流程引擎
Renderer.js——通过dojo展现渲染流程图的组件
Transformer.js——解析流程图的组件
最坑爹的是camunda首页的流程模拟是用jquery框架和Raphael图形处理库,因此确定,除了Renderer组件,其他组件都能复用。
camunda首页还采用了bootstrap框架,并且自己拓展了相关组件,值得借鉴。
2 结构
src
-bpmn
-Bpmn.js
-Executor.js
-Renderer.js
-Transforme.js
test
-bpmn
-engine
-lib
-renderer
-resources
-transformer
-util
-runner.html
3 各类接口
3.1 bpmn.js
renderUrl(url, options)通过url解析流程图
render(bpmnXml, options)通过字符串解析流程图
zoom(factor)放大缩小
annotate(id, innerHTML, classesArray)注释
clear()清除
例子:
new Bpmn().renderUrl("test/resources/task_loop.bpmn", {
diagramElement : "diagram",
overlayHtml : '<div style="position: relative; top:100%"></div>'
}).then(function (bpmn){
bpmn.zoom(0.8);