根据前段时间的调研结果,FoxBPM流程引擎的web设计器最终选型已经确定:基于SIGNAVIO开源框架扩展foxbpm属性,本周博客就为大家简单介绍一下SIGNAVIO开源框架的部分结构模块,以及整个编辑器的数据模型。SIGNAVIO整个系统框架也是采用类MVC 编程模型将元数据和视图进行分离。 SIGNAVIO框架的实现基于事件模型、函数式编程、OOP思想、SVG标记语言,视图基于EXT框架、元数据基于JSON对象、图形编辑器则是基于SVG标记语言 等 。
设计器的页面布局如下图所示:
主要包括四大块
1、工具栏
主要功能是负责中央设计器的辅助工作,包括编辑过程中的复制粘贴放大缩小回退等等功能。这一模块是固定的无法通过元数据进行动态扩展。
2、图形库
主要功能是展示当前设计器已支持的的bpmn元素节点,用户可以通过拖拽的方式将元素节点从图形库拖至中央编辑器进行编辑,所有的图形信息由元数据JSON提供,支持元数据动态扩展。如下图所示:
3、中央编辑器
负责所有的元素节点的编辑组合工作,是整个设计器的核心,基于Ext.dd内库和SVG标记语言,元素节点的组合规则由元数据JSON提供。
4、属性页
顾名思义是展示当前选中节点的所有可配置属性,页面加载时默认展示流程定义的属性,可以选中节点进行动态切换属性页,所有节点的属性信息、以及选中节点时属性的动态切换所需要的关联关系都全部由元数据JSON对象提供,所以也支持动态扩展。如下图所示:
通过以上描述一个大致的元数据模型我想已经渐渐清晰了,它应该包括:所有的图形信息、所有类型节点的所有属性信息(包括节点与属性之间的关联关系、节点与节点之间的规则信息)、所有的组合规则三大部分。根据以上描述我们在来看SIGNAVIO对应的元数据JSON对象,直接上图:
protertyPackages对应属性信息、
stencils对应图形库中图形信息、
rule对应元素之间的关联规则;
展开stencils节点大家应该能立刻明白我们上面所描述的了
我们可以发现stencil对象除基本属性外,还关联三个对象,分别是组、属性、规则,且都是一对多的关联关系,关联关系由stencil对象维护。根据以上元数据设计器就可以轻松的实现节点选中事件属性页动态切换、图形元素之间的组合规则等。
SIGNAVIO开源框架采用GNU开源协议,所以允许我对其框架代码进行编辑修改,我们将元数据JSON对象相关的js代码单独抽取出来,定义在stencilDefinition.js文件中(由于其篇幅较长,直接添加到附加中,如有需要可以自行下载,也可以从GitHut下载整个开源项目)。
其实我们最需要关心的是属性页的加载方式,属性信息的加载编辑和保存,所以针对这些,我们将属性页的加载相关模块也提取出来冠名以loadProperties.js,其功能包括根据选定的元素节点动态切换属性页、属性编辑、属性保存、Ext组件创建、布局等。(参考附件)。
要想达到最终扩展的目的,我们还必须了解整个元数据JSON对象和流程定义元素对应的JSON对象它们的加载、操作以及传递的方式,所有JSON数据操作维护相关的功能我们也单独抽取出来,冠名以oryxEditor.js从而方便统一管理,其功能包括创建单例对象来维护编辑中的信息、DOM事件相关操作,json格式的节点元素(shape)的相关操作,模型加载等等。
本文只是基于元数据对SIGNAVIO部分模块的的一个参考,要想深入了解整个设计器的框架结构、算法结构、数据加载方式,学习相关源码是唯一的选择。不过在学习之前请做好心理准备!
====================================================================
声明:本文首发iteye blog,转载请注明作者信息及原文地址,谢谢
作者信息:
马恩亮(elma@wisedu.com)
=====================================================================
相关推荐
湖北枣阳太平一中----浅析初中思想政治教学中的情感教学.doc
大学毕业设计---浅析flash动画制作的关键点.doc
TD-SCDMA 技术浅析 详细的介绍的东西哦i
刘丹--5G技术浅析及其工业应用前景1025_工业计算机大会
android,IOS移动软件开发:GSM-UMTS-LTE鉴权浅析,讲述移动终端鉴权原理和协议。
今天简化了金山的开源代码,用来学习一下,先谢谢金山的开源精神了,呵呵···直接弄最简单的,窗口见下图,关键代码如下,全部的代码放附件里吧。分析中关于累的继承机制等没有详细的说明了,在函数申明中我会用...
毕马威-农业:浅析涉农业务银保合作的发展之道精品报告2020.pdf
根据网上资料进行编辑、代码着色整理而成,对使用MFC编程...文档视图结构缺省的命令处理、操作流程 、处理流程、CObject浅析 、命令更新机制、对话框数据交换及验证 、CWnd类虚函数的调用时机、缺省实现、CArchive 原理
基于5G-NR演进浅析和展望未来6G系统中去蜂窝化技术的应用
### MMO手游社交框架浅析 MMO类型游戏之所以能在市场中保持旺盛的生命力,很大程度上得益于其丰富的社交体验。在本文中,我们将基于标题“MMO手游社交框架浅析”及描述“mmo手游的设计框架,包含社交场景,社交范围...
概括了Weightless-P协议的协议部分技术特点,参照Weightless协议进行研究的好材料,为物联网发展提供参考标准,并且区别于LoRa,、Zigbee技术等规范,适合读不懂英文材料的科研研究
大数据-算法
【Frameworx框架体系】是电信管理论坛(TMF)提出的一种广泛接受的行业标准,用于构建和管理新一代运营支撑系统。该框架体系涵盖了业务过程、信息、应用和技术等多个层面,旨在解决电信运营中出现的功能重叠、集成...
1.调用客户端句柄 2.调用本地系统内核发送网络消息 3.消息传送到远程主机 4.服务器句柄得到消息并取得参数 5.执行远程过程 6.执行的过程将结果返回服务器
保险行业培训资料-平安太平洋--浅析社会保障制度(PPT 43页).ppt
教育精品资料
教育精品资料
教育精品资料
计算机外文翻译--浅析网络安全的技术
2010-05-21肖韬组会报告---MapReduce编程实例浅析