当前位置: 首页 > news >正文

Flex开发流程设计器的经验之谈(3)

昨天说了WorkbenchPartEditorPartViewPart,以及为什么需要做这样的抽象,今天就先跳出这么细粒度的讲解,今天先来看看整个Flow Designer的整体结构。反正说写博客,想到哪里说道哪里。

在讲正题之前,如果阅读过前两篇的,可以先看看:
Flex开发流程设计器的经验只谈(1):
连接>>>

Flex开发流程设计器的经验只谈(2):连接>>>

整个Flow Designer的粗的架构如下:

其中“Flex GEF”是真正的Kernel,其内部的对象关系很多来源于Eclipse GEF的设计思路,当然远比Eclipse GEF要简易很多。

Flex GEF—— 实现最基础的Editor接口,维护Model-EditPart-Figure之间的关系。

Flex GEF4G—— 在Flex GEF之上实现一套专门针对Graphical的扩展

Flex GEF4P—— 在Flex GEF4G之上,实现一套专门针对通用Process描述的扩展。这样Flow Designer则可以将更多的精力和实现放置于专门针对特定Flow视图展示上。在第一篇介绍的内容中,只所以可以显示两种视图,原因就在此。

Flex UI View—— 对ViewPart的实现,由于Flex本身基类中对图形化组件支持的非常好了,所有基本上没有太复杂的扩展。

Model—— 实现对Model接口的声明,以及对Model变更的时候做Notifer响应机制的实现。
Flex Extention—— 扩展了一些Flex Controls和Containers做,来辅助视图显示。

一下是没啥用处的个人随感废话,大可不必看:

说实话,这套构架完全没有任何新颖的地方,也没啥特别的。我只是把它按照Eclipse GEF这种思路,在Flex(或者说用ActionScript)简易化的实现了一把。

只是一方面我之前对Eclipse GEF并不熟——虽然网上有很多介绍“如何基于Eclipse GEF开发”文档和教程,但真正从“底层”来阐述GEF原理,分析GEF内部机制和真正实现原理的文章太少。所以不得不一遍遍的翻Eclips GEF/UI方面的源码,来寻找正确的设计源泉。

另外,目前这套Flex GEF框架还不是很成熟和稳定。基本架构是在去年12月底构建完结的,也可以说初步实现。前些日子(今年2月初)在用其去实现上层一个小模块的时候,发现原有的一些设计还有很不足的地方,又做了一些地方的重构和调整。也许还需要更多的Case去检验其完整性。

相关文章:

  • 飞信分布式存储的结构
  • 使用Zoundry进行测试了下!
  • 使用HTML5制作游戏
  • [Web开发] IE 所有版本打包下载,网页兼容测试必备
  • c# LazyQueueT实现
  • Windows NT/2k/XP/Vista 管理员密码重置
  • c# 使用sharppcap实现 网络抓包
  • 数学之美系列十六(上)- 不要把所有的鸡蛋放在一个篮子里 -- 谈谈最大熵模型
  • [Web开发] 如何改变IE滚动条的颜色
  • sql 选择两列中最大的那列
  • 解读CNNIC《中国手机上网行为研究报告》
  • ms sql常用语句汇总
  • 把表变成编辑状态
  • sql server 数据库语句
  • WoWModelViewer分析
  • “大数据应用场景”之隔壁老王(连载四)
  • 08.Android之View事件问题
  • Babel配置的不完全指南
  • co模块的前端实现
  • ES6核心特性
  • Hexo+码云+git快速搭建免费的静态Blog
  • java正则表式的使用
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • 开发基于以太坊智能合约的DApp
  • 普通函数和构造函数的区别
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 学习HTTP相关知识笔记
  • 原生js练习题---第五课
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • Android开发者必备:推荐一款助力开发的开源APP
  • 阿里云服务器如何修改远程端口?
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • ​flutter 代码混淆
  • ​VRRP 虚拟路由冗余协议(华为)
  • # 透过事物看本质的能力怎么培养?
  • #、%和$符号在OGNL表达式中经常出现
  • #{}和${}的区别是什么 -- java面试
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (1)bark-ml
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (Git) gitignore基础使用
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • .net 按比例显示图片的缩略图
  • .NET 使用 XPath 来读写 XML 文件
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .NET企业级应用架构设计系列之技术选型
  • .net中生成excel后调整宽度
  • :O)修改linux硬件时间
  • @WebServiceClient注解,wsdlLocation 可配置