注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天涯倦客的博客

祝福你朋友永远快乐!

 
 
 

日志

 
 

Silverlight实现查询建模(十) 与Silverlight流程设计器集成  

2012-10-13 16:00:19|  分类: 工作流 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
转载:http://dev.21tx.com/2009/09/23/13761.html
这部分应该是目前XCenter中的最吸引人的地方。首先要感谢chegan的贡献。这里我算站在巨人的肩膀上了,先看一下效果图:

Silverlight实现查询建模(十) 与Silverlight流程设计器集成

  图片看不清楚?请点击这里查看原图(大图)。    

   开始阶段其实我根本没有想用什么流程设计器来实现。只是随着逐渐贴近核心业务逻辑,感觉作为编辑器和设计器,过于复杂的操作界面会使开发人员和用户都感 觉到无所适从甚至抓狂。本着简化UI的目的我简单看了一下chegan的Silverlight流程设计器。这个设计器本身是个很通用的工具,可以用来实 现 XCenter中的查询模型设计器和格式模型设计器。而且其中的用XML序列化布局的逻辑很XCenter的核心存储逻辑很相似(XCenter把查询模型实例序列化为XML存储在数据库中的Blog字段)。

  由于流程设计器本身比较独立,我将核心代码放置到XCenter.Framework.Client 的SmartEditor目录。目录结构和 chegan的目录结构一致,只是修改了命名空间。由于chegan的流程设计器主要面对工作流,各个节点的图示都是根据代码画出来的。XCenter中 的各个节点无需根据逻辑呈现不同内容,先对固定,所以用固定的图标显示节点更为美观实用。这就免不了要修改chegan的流程设计器。

   以下我只列出我的修改,关于chegan流程设计器的详细知识请见其Bloghttp://www.cnblogs.com/chegan /archive/2009/04/22/1440872.html。如果chegan有幸看到这边文章请指正我修改得不妥的地方。

  首先我要实现节点图标的现实就必须新建一种ActivityType,这里要修改IElement.cs中的ActivityType并添加一种自定义的类型,IMAGE_48X。

  由于Activity.xaml.cs中要根据ActivityType的不同进行不同情况的处理,例如位置、显示等。我们要修改所有涉及到ActivityType分支的部分,相应的添加对我们的自定义类型IMAGE_48X的支持。

   修改位置为:GetPointOfIntersection方法,RepeatDirection的Set访问器,Activity的构造器,Type 的 Set访问器。具体我就不说了,大家可以先了解chegan的流程设计器原理再根据代码一步步修改以实现自己的需求。

  最后由于 chegan的流程设计器的Container部分逻辑比较复杂,而XCenter中的查询模型、格式模型设计部分目前没有那么复杂的逻辑,所以我基于 chegan的Container实现自己重新写了适合XCenter的设计器容器,它位于XCenter.QueryEngine.Client 项目的Designer目录。

  这样一来流程设计器好像是一个多功能的插座,我们现在只需把各个节点的编辑界面挂在不同类型的节点上就可以了,大大简化了交互界面。

  Silverlight实现查询建模(十) 与Silverlight流程设计器集成

  图片看不清楚?请点击这里查看原图(大图)。

  评论这张
 
阅读(818)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017