快速业务通道

jBPM-Side流程设计器架构说明 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21
EditPart重要的实现类包括GraphicViewer与GraphicEditPart。

GraphicViewer被SurfaceComponent继承;

GraphicEditPart被NodeComponent和ConnectionComponent继承。

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

时间:2011-01-03 javaeye ronghao

2、Tool

Flex应用程序是基于事件驱动的,用户对界面的操作即反映到各种鼠标和键盘事件上。在原先的设计里,由Component组件自己来处理各种原生事件,当需要其他组件协作时,通过TheModel发出应用定制事件。在GEF的设计里,Component组件的原生事件处理被委派到Tool类进行处理。 Component组件只管理自身的图形渲染和变化。

例如SurfaceComponent处理鼠标点击事件代码:

Java代码

public function mouseClickHandler(event:MouseEvent):void     {       … …       this.tool.mouseClick(event, compX, compY);     }

注意this.tool方法,这个方法同样是由GraphicViewer和GraphicEditPart分别  引入的。注意有些时候组件的Tool是需要切换的,例如鼠标点击面板,通常会导致被选中的节点或连接线选中状态消失,但是当工具条选中一个节点时,这个鼠标事件会导致向面板增加相应的节点。这时需要ToolManager来进行Tool却换的管理,针对 SurfaceComponent/NodeComponent/ConnectionComponent分别有SurfaceToolsManager /NodeToolsManager/ConnectionToolsManager来管理不同的Tool切换策略。需要注意的是ToolManager 和Tool都是无状态的,全局唯一,所有视图组件共用。

3、Command

视图组件的变化会导致Model组件的变化。Tool处理视图原生事件、调用CommandService执行各个Command具体操作视图组件和Model对象实现视图组件和Model组件的变化。

CommandService与SurfaceComponent进行一对一绑定。CommandService持有CommandStack,实现单个Tab编辑界面内Command的redo和undo。

具体操作视图组件和Model对象必须通过Command。

五、TheModel全局类的用途

TheModel全局唯一,职责如下:

负责应用所有定制事件的订阅/分发;

负责持有工具条和系统菜单属性;

负责持有剪贴板,实现各个画板之间的节点拷贝/剪切。

六、ProcessDesigner与ProcessEditor

ProcessDesigner负责整个应用的布局,目前由三部分组成,系统菜单、工具条和TabNavigator(TabBar管理器),TabBar管理器负责添加和删除Tab,由Tab加载画板,这样实现对多流程定义同时编辑的支持(即多Tab)。

ProcessEditor是应用的入口,它持有ProcessDesigner,实现了IGraphicalEditor接口。目前其对graphicViewer()方法的实现是返回当前激活状态Tab的画板。

同时,ProcessEditor负责统一监听工具条/键盘事件,并将这些事件处理委派给当前处于激活状态的Tab画板处理。

七、Xml框架

位于org.jbpmside.xml下,使用E4X,使用binding对各种类型的节点进行解析,不集中在一个文件完成解析和转换,一个节点类型对应一个binding。使用代码如下:

Java代码

public function parse(xml:String):ProcessDefinition{   var parser:Parser=new Parser();   return parser.createParse().setString(xml).      execute().getProcessDefinition() as ProcessDefinition; }

测试代码位于test目录下,是目前唯一可以进行单元测试的部分。

八、还需要完成的工作

1、xml框架还需要大量的解析工作完成(以支持jpdl4)

2、第一个版本为本地应用,需要增加对本地文件操作的支持

3、模型迁移至org.jbpmside.model.common

4、工具条使用flexlib重写,新的16位图标,节点属性弹出框

5、Command目前只实现了对undo的支持,需要实现对redo的支持

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号