背景:
小弟工作已有十年有余,期间接触了不少工作流产品,个人比较喜欢的还是JBPM,因为出自名门Jboss所以备受推崇,但是现在JBPM版本已经与自己当年使用的版本(3.X)大相径庭,想升级也不太容易,后来得知JBPM的老大转战到了Activiti,处于对JBPM的喜欢所以研究了一下Activiti,发现Activiti不但保留下JBPM优秀的DNA而且还进行了优化,相比之前JBPM设计更简单更清晰更容易掌握。
三年前Activiti开始进入公司的正式项目中并且表现非常良好,但是它的Web版的定制器无法满足我们的需求,可能是由于当初Activiti刚发布不久这方面的成型的产品比较少,所以没有找到合适的替代产品,那该怎么办呢?经过一番的思想斗争,小弟决定先自己做一个Demo,如果可行则自己研发。
经过研究其他工作流引擎的定制器,小弟发现找到一个能够支持多浏览器的绘图脚本库很关键,所以开始在网上疯狂的寻找,俗话说:黄天不负有心人,最后终于发现一个新大陆——Draw2d,但是接下来一个问题来了,这个脚本库是收费的,怎么办?谁叫咱们是做JAVA出身的呢!对免费的开源的情有独钟,后来在网上找到早期的版本是免费的,下载下来研究一番发现功能基本够用,哈哈哈。。。。搞定!
好了罗嗦的这么多,就是想引出本篇的主人公——Draw2d,至于它有多牛可以访问官网了解一下,不过现在都是收费的而且比早期的版本功能强大很多。
下面进入正题,详细讲解一下Draw2d,讲解之前请注意以下内容都是基于Draw2d早期版本而且都是本人通过研读代码获得(由于收费所以没有文档,只能靠自己),如果与现在版本有出入或者理解错误的地方请指正。
Draw2d类图:
以上是Draw2d中各种组件(如:窗口、对话框、菜单、图形、线的起点和终点、注释等等)类图,这些组件在绘图时经常用到,其中带颜色的类是本设计器使用的组件(后面的章节会着重介绍)。
以上是Draw2d中连接线类图,设计器中的连接线就是Connection扩展而来,一个Connection实例一般由三个部分组成:Color、ConnectionDecorator和ConnectionRouter。
Color:定义连接线的颜色(RGB)
ConnectionRouter:定义连接线是折线还是曲线等
ConnectionDecorator:定义连接线是否有箭头
后面会重点介绍,这里不在赘述。
以上是Draw2d中画布类图,绘图时在画布上添加图形(上面提到的类的实例)即可实现相应图形的绘制。Draw2d中已经内置了WorkFlow类型的画布这为定制器的开发带来了很大的方便。
这幅图是Draw2d中指令类图,Draw2d中使用了Command模式响应事件处理,方便实现自定义工具栏功能按钮,如:设置颜色、设置文本功能等等。
除了以上类图中展示的类,Draw2d中还有很多静态工具方法和工具类(如:XML解析、序列化/反序列化、ArrayList、String等),这里不在过多的展开查看源代码很容易理解,有问题的话可以给我留言。
下一篇着重讲解本定制器如何使用Draw2d进行扩展,敬请期待。。。。。
http://lisonghua2010.iteye.com/admin/blogs/1490165
Activit官方文档地址
http://activiti.org/userguide/index.html
-------------------------------------------------华丽分割线---------------------------------------------------------------------
温馨提示,下面是广告时间(不喜请绕行)
推广一下本人的小店:
http://tianya-zahuopu.taobao.com/
优惠多多,欢迎光临!
相关推荐
easyui实现的Activiti工作流引擎web版流程设计器 跨浏览器流程设计器 打开文件 processDesigner\wf\designer\index.html
基于easyui实现的activiti模型设计器。
基于draw2d和easyui开发的一个流程管理原型界面,能拖拽,根据拖拽的内容生成xml内容,根据xml自动解析生成界面
EasyUI框架集成Draw2D 组件开发BPM 工作流实例。纯Web版本,下载打开可以直接使用!
easyui实现的Activiti工作流引擎web版流程设计器 跨浏览器流程设计器 1.根据Activit设计器实现了除User Task外的其余节点。 2.重构的JS脚本,更利于扩展。
基于easyui做的一套管理系统 基于easyui做的一套管理系统
基于Draw2d Touch实现的Activiti工作流Web设计器,本设计器完全使用JQuery语法开发,集成Easyui前端框架,支持多种主流浏览器。支持Activiti5以上语法结构。采用目前比较流行的JS库-JQuery。符合BPMN2.0标准。可视化...
目录 背景介绍 *activiti5*,是一个轻量级的工作流和业务流程管理平台。 *优势*,它最大的优势在于采用了PVM(流程虚拟机),基于...easyui、jqueryui plugin以及著名的js框架*draw2d*开发的。 * *题外话*,其
基于easyui中的textbox输入框自定义的颜色选择器及源码
基于hibernate spring struts shiro activiti easyui框架的物流系统,可做毕业设计代码自己看着视频手打的,可以运行,内涵数据库 说明等,适合做毕业设计和课程答辩
easyui开发包,包含所有的demo及开发easyui相关的所有开发包
使用EasyUI开发的web代码,包括权限和部分组织架构
jQuery+EasyUI开发示例(附源码)
easyui开发手册easyui开发手册easyui开发手册easyui开发手册easyui开发手册easyui开发手册easyui开发手册easyui开发手册easyui开发手册
processDesigner easyui web在线流程设计
基于EasyUI的仓库管理系统
jQuery+EasyUI开发指南宝典
花了一天时间实现的基于easyui的多人选择插件,是一个dailog