*LightweightSystem概述

---功能

draw2d的核心功能,在draw2d和SWT之间的桥梁.内容包括figure的绘制,事件转发,图形更新.

---由3个主要组成成分,

root figure,event dispatcher,update manager

下面通过源码分析功能

*root figure

---在构造器初始化时被自动创建,作为自定义figure的容器,

rootfigure源码

---自定义的figure通过setContents(IFigure figure)设置

setConstents()

figure的层次结构,root figure ->自定义figure->孩子们

*event dispatcher

---默认的事件调度器是SWTEventDispatcher

---功能,将Canvas上的注册SWT事件,通过dispatcher传给对应的figure(获取焦点的figure)

---实现原理

1.LightweightSystem.addListeners() //实现canvas添加各种SWT事件监听器,这个监听器为内部类LightweightSystem.EventHandler

2.EventHandler调用dispatcher处理

EventHandler监听方法

3.dispatcher调用对应的figure完成处理

对应上面方法的后续处理实现

SWTEventDispatcher中处理SWT事件

*update manager

---功能

绘制和更新figure的内容

---默认的实现private UpdateManager manager = new DeferredUpdateManager();
---实现原理

1.LightweightSystem初始化过程中,

在初始化canvas时,配置update manager

初始化updateManager

初始化root时配置,配置root figure

设置rootFigure

2.在Canvas的ControlListener时触发update manager,就是在Canvas上有move和resize的情况时发生

ControlListener触发update manager

*总结

---draw2d的一切都是从Canvas开始的,将功能分成figure的图形展现,update manager的更新机制,和dispatcher的SWT事件转发机制.

所有这些功能在LightweightSystem中集成.

posted on 2011-03-03 15:32  戴忠  阅读(497)  评论(0编辑  收藏  举报