参考书籍:
eclipse插件开发笔记第21章
eclipse插件开发与实战第19章
初步学习重点:熟悉其中的主要类极其功能。
Draw2d是一套相对独立的图形系统,通常跟GEF一起构建MVC系统。它相当于其中额VIEW部分
主要掌握5大类
1.轻量系统类LightweightSystem(核心)Drawd2d跟SWT之间的交互任务
2.画布Canvas
3.图形元素Figure
可以是任何形状,可以相互嵌套,可以是透明的。也可以是分层。
掌握两个类: 绝对坐标Absolute Coordinate,相对坐标 Relative Coordinate
4.事件分配器EventDispatcher
5.更新管理器UpdateManager
负责重绘,更新Figure 当收到swt的更新请求的时候。会调用管理器的performUpate()方法更新图形。
LightweightSystem包含的主要部分
根图形元素RootFigure:继承了SWT画布空间为顶层Figure的父亲
事件分配器SWTEventDispatcher:将SWT事件翻译成相印的Draw2d事件。它跟踪Figure是否获取焦点。是否是鼠标的目标。管理提示信息的显示
变更管理器UpdateManager:负责重绘,更新Figure 当收到swt的更新请求的时候。会调用管理器的performUpate()方法更新图形。
默认变更管理器是DeferrodUpdateManager类
EventDispatcherUpdateManager和SWT重量级Heavyweight空间。
布局管理
抽象类:AbstractLayout。
子类:
FlowLayout:行布局
BorderLayout边界布局
ToolbarLayout工具栏布局
StackLayout堆栈布局
DelegatingLayout 需要Figure实现Locator接口的定位器。
XYlayout坐标管理器布局
SrollPaneLayout管理滚动条布局
ViewProtLayou:管理视图的可现区域和滚动位置状态。
连线:
连线图元都要是实现Connection接口。它扩展了IFigure接口主要管理两点间的线条。起点跟重点由连接描点ConnectionAnchor定义。连线由实现Connection接口的连线类定义。
如PolylineConnection类。连线的路由和处于连线上的点的位置则由ConnectionRouter管理。
连线路由器(Connection Routor) 负责两个描点之间的连线路径。
NullConectionRouter直线连接描点。并不提供其他路由计算。
AutomaticRouter:此路由为防止连线重叠的路由器基类。继承次类路由器会将起点和终点相同的连线散开显示。
BendpointConnectionRouter此路由器允许用户以任意拖动连线中某部分的方式添加连线转折点。
ManhattanConnectionRouter曼哈顿线方式连接。原则上只有垂直跟水平连线组成的起点和重点。其中也提供了回避线条重叠的功能。
其他重要组件
主要掌握以下:边界,层次,定位器,连接描点。
边界类:Border 通过偏移量Inset调整边界内的子Figure与边界的相对位置。还有其他边界子类:标题栏边界,框架边界,线条边界类
重点掌握以下几类:
分组框边界:GroupBoxBorder
标题边界:TitleBarBorder
复合边界:CompoundBorder
框架边界 FrameBorder
焦点边界 FocusBorder
线条边界 LineBorder
边框边界 MarginBorder
预配置边界SchemeBorder
下沉式边界SimpleLoweredBorder
上浮式边界SimpleRaiseBorder
层次Layer:透明的Figure
图形笔记
连线Conneciton
总要连线类:
Router, 负责连线的外观和操作方式。最简单的设置Router为null,则会使用直线连接
Anchor,控制连接线在图形上的未知。即描点。常用ChopBoxAnchor。EllipseAnchor,LabelAnchor,XYAnchor
Locator,定位图层。在连线中点以一个标签现实此连接线的名称。则可以使用MidpointLocator来定位这个标签。其余:ArrowLocator