jBPM-Side流程设计器架构说明

一、代码主要结构

所谓流程设计器者,无怪乎读取xml文件,图形展现,操作图形元素,改变xml文件,回写,如此而已。

既然如此,设计器的流程结构就非常清晰:首先是xml框架解析xml文件为Model模型组件,然后Model模型组件被展现为Component视图组件;用户对Component视图组件进行操作,这些操作被同步的修改到Model模型组件;最后用户保存时,Model模型组件经过xml框架解析回 xml文件,该文件被上传到服务器或本地覆盖原有的xml文件。

那么代码结构就很清晰了:xml框架、Model模型组件和Component视图组件。但是等等,Model与Component如何交互呢?这里就需要GEF框架嫁接起两者的联系。同时,一个流程设计器往往要同时编辑多个流程定义,相比具体的流程定义而言,设计器拥有一些全局的对象,这些全局对象包括系统菜单栏、工具条、整个设计器布局框架(ProcessDesigner)、设计器入口(ProcessEditor),还有就是负责保存全局属性和发布/订阅定制事件的TheModel对象。

二、Component视图组件

很直接,Component视图组件指的是与用户打交道的、与流程定义相关的视图元素。注意这里的一个定语:与流程定义相关的,即不包括系统菜单、工具条这些东东。这些视图元素很简单,包括画图板、各种节点元素和连接线元素。

代码位于org.jbpmside.view.component和org.jbpmside.view.component.node下。主要类 SurfaceComponent、NodeComponent和ConnectionComponent。看类名就很清晰这些类分别代表着什么组件:

SurfaceComponent代表画图板;

NodeComponent代表节点;

ConnectionComponent代表连接线;

org.jbpmside.view.component.node下的类就是NodeComponent类的子类,代表具体的单个节点类型了,包括开始节点、结束节点、Fork节点、Join节点等等。

Component视图组件使用了degrafa来渲染表现形式。

目前缺少一个属性弹出框组件,职责展现和修改节点/连接线属性。

三、Model模型组件

Xml流程定义文件解析为本地Model模型组件,本地建模和jBPM4的PVM建模一致,代码位于org.jbpmside.model下,重要的类:

ProcessModel代表流程定义;

NodeModel代表节点定义;

ConnectionModel代表连接线定义;

剩下的就是具体节点类型的模型类,例如StartNode/EndNode/TaskNode等。

目前模型类还非常简单,因为前段时间主要关注Component视图组件部分,接下来很快会与jPDL规范完全同步,同时ProcessModel/NodeModel/ConnectionModel会进行重构,目标是与jBPM4模型完全一致。

最新的模型位于org.jbpmside.model.common下,对jpdl4的支持位于org.jbpmside.model.jpdl4下,未来需要将Component与Model的关联迁移至common包下。

时间: 2024-10-30 07:18:39

jBPM-Side流程设计器架构说明的相关文章

[jBPM系列]jBPM的流程设计器(GPD)在Eclipse里的安装

inkfish原创,请勿商业性质转载,转载请注明来源(http://blog.csdn.net/inkfish ). 流程设计器(GPD)是jBPM的一个eclipse插件,用于图形化设计工作流程.这里介绍如何在eclipse里安装GPD.示例中使用jBPM 4.3+eclipse 3.5.eclipse建议使用Eclipse IDE for Java EE Developers或Eclipse IDE for Java and Report Developers.(来源:http://blog

WF4.0 流程设计器例子 (提供状态机模板)

WF4.0 的流程设计器,可根据流程启参数自动构建启动窗体, 根据Bookmark自动构建提交窗体,可保存,加载,调试VS2010设计的工作流文件,提供可视化的流程测试界面,可设计WF4.0的顺序工作流,FlowChar工作流,状态机工作流(注: WF4.0默认没有提供状态机,本例中的状态机是根据WF State Machine Activity Pack源代码修改实现的) 状态机模板 测试例子 打开测试流程 启动测试流程 跟踪,运行信息 本文示例源代码或素材下载

使用silverlight构建一个图形化流程设计器(一)

前言 Silverlight发布已经很久了,具体是什么就不多说,大家一定很清楚.最关心的就是其中的跨浏览器能力,以及强大的用户界面表现能力.于是决定使用它来实现一个流程设计工具,以替代以前的流程设计器(原来是用vml实现,只能在IE浏览器上工作),因为第一次接触silverlight,在学习.工作的过程中肯定会遇到很多的问题,将这个学习新知识.解决问题的过程记录下来,肯定能找到许多志同道合的朋友,也请大家抱着这种态度阅读本文. 本文主要讲述使用vs.net2008开发一个基于silverligh

WF4.0流程设计器例子 (提供状态机模板)

WF4.0 的流程设计器,可根据流程启参数自动构建启动窗体, 根据Bookmark自动构建提交窗体,可保存,加载,调试VS2010设计的工作流文件,提供可视化的流程测试界面,可设计WF4.0的顺序工作流,FlowChar工作流,状态机工作流(注: WF4.0默认没有提供状态机,本例中的状态机是根据WF State Machine Activity Pack源代码修改实现的) 状态机模板

整合Acitiviti在线流程设计器(Activiti-Modeler 5.18.0)

整合Acitiviti在线流程设计器(Activiti-Modeler 5.18.0) 1.概述前言 一直以来都是从事大量的工作流相关的项目,用过很多商用的工作流产品,包括国内与国外的,尽管商用的工作产品在UI操作上比较人性化,但个人用户觉得,这东西只需要一些初级用户,对于我们一直在为一些高级的客户提供一些专业的数据整合.流程梳理.系统间的数据穿透时,这些系统因为不开源,给项目的实施带来巨大的风险,在一些项目栽过跟头后,我更偏向于使用开源的平台了.但开源平台最大的难点是在于你是否有足够的技术人员

Activiti实战. 3.3基于Eclipse插件的流程设计器Activiti Designer

3.3基于Eclipse插件的流程设计器Activiti Designer 在客户的需求确定之后,由业务人员利用Activiti Modeler设计完业务流程,此时可以将设计结果导出为bpmn20.xml文件,之后由开发人员继续基于设计进一步添加涉及技术细节的配置,例如排他分支的条件.Java服务.任务监听器等. 3.3.1Activiti Designer特点 Java程序员每天工作使用的主要工具是IDE,而应用最广泛的IDE当然是Eclipse,任何开发人员都可以很容易地开发Eclipse的

java 整合 activiti工作流 web流程设计器 整合视频教程 SSM

本视频为activiti工作流的web流程设计器整合视频教程 整合Acitiviti在线流程设计器(Activiti-Modeler 5.21.0 官方流程设计器) 本视频共讲了两种整合方式 1. 流程设计器和其它工作流项目分开部署的方式 2. 流程设计器和SSM框架项目整合在一起的方式 视频大小 1.13 GB ~[获取地址] QQ313596790 本视频均为本人亲自录的,另免费附加赠送Activiti工作流视频(企业开发实例讲解) (这个赠送的Activiti工作流视频里面的流程设计器用的

activiti工作流的web流程设计器整合视频教程 SSM和独立部署

本视频为activiti工作流的web流程设计器整合视频教程 整合Acitiviti在线流程设计器(Activiti-Modeler 5.21.0 官方流程设计器) 本视频共讲了两种整合方式 1. 流程设计器和其它工作流项目分开部署的方式 2. 流程设计器和SSM框架项目整合在一起的方式 视频大小 1.13 GB ~[获取地址] QQ313596790 本视频均为本人亲自录的,另免费附加赠送Activiti工作流视频(企业开发实例讲解) (这个赠送的Activiti工作流视频里面的流程设计器用的

activiti,工作流的web流程设计器整合视频教程 SSM和独立部署

本视频为activiti工作流的web流程设计器整合视频教程 整合Acitiviti在线流程设计器(Activiti-Modeler 5.21.0 官方流程设计器) 本视频共讲了两种整合方式 1. 流程设计器和其它工作流项目分开部署的方式 2. 流程设计器和SSM框架项目整合在一起的方式 视频大小 1.13 GB ~[获取地址] QQ313596790 本视频均为本人亲自录的,另免费附加赠送Activiti工作流视频(企业开发实例讲解) (这个赠送的Activiti工作流视频里面的流程设计器用的