点击图片是可以在线演示一、说明可视化工作流设计管理器是工作流系统的一部分。实现工作流活动,转移的可视化配置。通常工作流系统会涉及以下几方面的内容。 1. 工作流定义 2. 组织机构实现 3. 工作流授权实现 4. 动态表单实现 5. 工作流引擎实现 6. 工作流可视化定义维护 本文只说明工作流设计器的实现。设计器有很多实现的方法,本文只说明用Extjs实现需要处理的问题。 二、工作流设计器的功能主体功能1. 增加、删除活动 2. 增加、删除转移 3. 修改活动、转移属性 设计器界面效果1. 活动节点定位 2. 橡皮筋拖动,重叠检测与反弹 3. 自动、手动选择线型 4. 线型的偏移和圆色修饰 5. 网格定位(snap) 6. 流程执行路径展示。
三、基本功能实现设计器要解决的首要问题是节点定位,拖动,画线。 节点定位:活动结点,以Div来表示,其内部为图标区和文字说明区。节点定位通过样式postion来实现 节点拖动:通过Extjs 的DragDrop相关类来实现。 画线:使用canvas标记。IE中,通过Google提供的库来实现。 1.最简单的场景:页面中两个可以移动的节点。
相关的代码只有两句: Ext.onReady(function(){
node1 = new Ext.dd.DD( 'IconManual','g2');
node2 = new Ext.dd.DD( 'IconAuto','g2' );
}); 2.拖动画线对上面的例子做一个扩充。定义一个节点类,封装相关的功能。 定义一个画布,用于画线。 下面是源代码: TestGraph00.apsx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TestGraph01.aspx.cs" Inherits="Common_Workflow_TestGraph01" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
<!-- ExtJS -->
<link rel="stylesheet" type="text/css" href="http://www.cnblogs.com/resources/css/ext-all.css" />
<script type="text/javascript" src="http://www.cnblogs.com/bootstrap.js"></script>
<script type="text/javascript" src="Script/excanvas.js"></script>
<link href="Css/TestGraph01.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="Script/excanvas.js"></script>
<script src="Script/Graph01.js" type="text/javascript"></script>
</head>
<body>
<form id="form1" runat="server">
<div id="canvas" class="canvas">
<canvas id="mainGraph" width="800" height="500" class="mainGraph"></canvas>
<canvas id="markGraph" width="800" height="500" class="markGraph"></canvas>
<div align="center" class="iconZone" id="IconManual">
<div class="iconActManual">
</div>
<div id='NodeNameDiv'>
人工结点</div>
</div>
<div align="center" class="iconZone" id="IconAuto">
<div class="iconActAuto">
</div>
<div id="NodeNameDiv">
自动节点</div>
</div>
</div>
</form>
</body>
</html>
注意:markGraph暂时没有使用。
|