WEB开发网
开发学院图形图像Flash 使用silverlight构建一个工作流设计器(三) 阅读

使用silverlight构建一个工作流设计器(三)

 2009-04-25 12:05:13 来源:WEB开发网   
核心提示: l ToXmlString()l LoadFromXmlString(string xmlNode)第一个用于生成表达本对象的xml片段,第二个用户根据xml片段来生成相应的对象,使用silverlight构建一个工作流设计器(三)(3),使用这两个方法就可以将流程当前状态转化为xml存储

l         ToXmlString()

l         LoadFromXmlString(string xmlNode)

第一个用于生成表达本对象的xml片段,第二个用户根据xml片段来生成相应的对象。使用这两个方法就可以将流程当前状态转化为xml存储了。具体实现大家看源代码即可。未找到在silverlight中动态生成一个文件下载,和从用户本地的系统中提取文件的方法,生成xml的文件存放在一个TextBox中,拷贝就可以。

4.3 撤销及前进

有了上面的生成xml及载入xml的基础,就可以设计出一个支持撤销和前进功能的应用了。有c/s编程经验的朋友对此一定不陌生,搞b/s开发的可能不太熟悉,这里简单实现,并说明一下思路。

在内存中定一个两个堆栈(Stack),一个保存用于撤销的xml集合,一个保存用于前进的xml集合。当出现下面的情况是,将流程当前状态的xml描述进入出栈和入栈的动作。

l         用户进行流程修改的时候,将修改后的xml描述压入(Push) 撤销堆栈,并清空 前进堆栈。

l         当用户点击 撤销 按钮时,从撤销堆栈 弹出(pop)一个xml,使用这个xml来还原流程图,同时将这个xml压入 前进堆栈。

l         当用户点击 前进 按钮时,从前进堆栈 弹出(pop)一个xml,使用这个xml来还原流程图,同时将这个xml压入 撤销堆栈。

也就是说两个堆栈协同工作,就可以完成撤销、前进的功能了。

另外撤销前进功能的xml存储也可以有两种方式,一种是增量存储,也就是只存储改变的部分,另一种的完全存储,也就是存储当前整个流程图的xml。对于第一种比较麻烦,对于第二种方式,系统中的函数已经支持,所以采用第二种方式,就是比第一种方式存储的xml长度大了一点。

本章的内容就结束了,请留下您的宝贵意见!后文再续!

上一页  1 2 3 

Tags:使用 silverlight 构建

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接