Flex开发流程设计器的经验之谈(2)
来源:互联网 发布:soundtrack mac 编辑:程序博客网 时间:2024/05/16 10:06
第一篇写于2个多月前,其间赶上春节,同时去年底突然安排了新任务,忙于另外的研究去了,从而一直没有再继续总结。还有个原因,是因为期间在断断续续的flex设计器原型系统研发过程中发现很多原有的一些细节设计之处不足,又作了很多细节性的重构和完善。这几天又接着完成了一个阶段的原型实现,才有空闲再接着写总结。
第一篇地址:http://blog.csdn.net/james999/archive/2008/11/16/3313861.aspx
首先回顾一下上一篇的内容。其实上一篇是非常“原则性的设计思路”,很多人可能读完以后会觉得很空洞,但真正在研发过程中,真正有价值的反而是这种看似空洞的指导思想和思路。——不信,可以尝试从零做做看,你就会发现,你真正需要的是什么了。
上一篇主要讲了几个原则:
(1) 一定要MVC架构,这个MVC架构不是说那个诸如PureMVC那种框架性架构,而是指的剥离“流程图形”“流程模型”“控制器”的设计结构,也就是eclipse gef中“Model-EditPart-Figure”这个架构。
(2) 玻璃板技术,外围拦截鼠标键盘事件,进行处理。
(3) Command模式,来处理操作。可以轻松解决redo-undo。而且严格记住,你的command作用的对象是“model”,而不是“图形”。
(4) 使用Layer模式,将不同的图元放于不同的图层上。比如底层的Grid放在某个层,活动节点放于某个层,连接线放于某个层,拖拽的阴影放于某个层等等。
(5) 利用Editor和EditorDomain、SelectManager等等对象来维护针对当前流程的管理空间。这个在eclipse gef中是基本概念,不清楚的建议看看相关资料。
现在进入正题。
WorkbenchPart、EditorPart、ViewPart
如果对Eclipse GEF/UI了解的话,看到这三个对象,你一定知道接下来要说什么。
对一个Flex流程设计器来讲,不仅仅只是流程图绘制这一块,你还需要涉及到一些额外的“视图(View)”,比如你可能需要显示当前流程图的OutLine,你可能需要显示问题列表,显示xml格式视图等等情况。借鉴eclipse gef/ui中的EditorPart和ViewPart设计思路,是非常不错的。
如上图,IEditorPart接口的实现代表一个图形化的设计区域编辑器,而IViewPart代表视图,其中每个ViewPart都会有一个Viewer,来表示真正的视图实现。注意,此处Viewer本身不是一个Flash DisplayObject对象,或者说不是一个Flex UIComponent对象,其内部的viewerControl才是表明此View的真正展示对象,比如是一个Tree,还是一个DataGrid,抑或是其他的UIComponent。
IeditorPart和IviewPart本身也不是DisplayObject,其仅仅表示这是一个View或者是一个Editor对象,索引一些资源。
看看IWorkbenchPart这个接口:
这个接口允许把Parent Contaier这个Display Object传递进来构建,也可以不传递进来。EditorPart和ViewPart都必须实现这个接口方法,来初始化其所代表的Display Object实现。
今天写的少了点,赶明再接着写。
- Flex开发流程设计器的经验之谈(2)
- Flex开发流程设计器的经验之谈
- Flex开发web流程设计器的经验之谈(1)
- Flex开发流程设计器的经验之谈(3)
- Flex开发流程设计器的经验之谈(4)
- Flex流程设计器实例
- FLEX WEB流程设计器线条、箭头的绘制
- 做大型flex项目的一点经验之谈
- FLex 流程设计器 高手出招
- 数据库设计经验之谈(转载)
- 数据库设计经验之谈(转载)
- Altium Designer入门使用2--印制电路板设计流程与经验之谈
- Altium Designer入门使用3--印制电路板设计流程与经验之谈 2
- Altium Designer入门使用3--印制电路板设计流程与经验之谈 2
- GTK初次开发的经验之谈
- 互联网开发模式的经验之谈
- 互联网开发模式的经验之谈
- 互联网开发模式的经验之谈
- Flash 游戏设计笔记:鼠标类游戏(4)
- Windows应用程序剖析
- 又开博了
- native2ascii用法解析
- System Dump和Core Dump的区别
- Flex开发流程设计器的经验之谈(2)
- NetTiers学习笔记04---NetTiers模板中各个选项的一些解释
- Oracle [PL/SQL]中的条件语句
- 数据库系统概念读书笔记(前三章)
- .nettiers 在Service层自定义逻辑--EmployeesService() --时间之间的查询
- USB设备监控深入分析
- Linux下共享库(SO)有关的几个环境变量
- ETS官方Issue主题范文36篇
- ADO CommandType 属性