GEF原理及实现系列(三、视图)

9 篇文章 0 订阅
9 篇文章 0 订阅

GEF视图通常利用Draw2d图形(IFigure)作为表现方式,用户可以通过Draw2d的功能实现图形的展示、布局及图形的编辑。

1.视图的功能

GEF的视图可以有很多种,GEF目前提供了图形(GraphicalViewer)和树状(TreeViewer)这两种,前者利用Draw2D图形 (IFigure)作为表现方式,多用于编辑区域,后者则多用于实现大纲展示。视图的任务同样繁重,除了模型的显示功能以外,还要提供编辑功能、回显 (Feedback)、工具提示(ToolTip)等等。
视图是模型图形方式的表现,它以图形的方式展示模型。视图的作用和JFace中的Viewer十分类似,而控制器(EditPart)就相当于是它的 ContentProvider和LableProvider,通过setContents()方法来指定视图的输入。
GEF经常使用的Editor是一个GraphicalEditorWithPalette(GEF提供的Editor,是EditorPart的子类, 具有图形化编辑区域和一个工具条)的实例,这个Editor使用GraphicalEditViewer和PaletteViewer这两个视图类, PaletteViewer也是GraphicalEditViewer的子类,表示选项板视图。开发人员要在 configureGraphicalViewer()和initializeGraphicalViewer()这两个方法里对 EditPartViewer进行定制,包括指定它的contents和EditPartFactory等。
EditPartViewer同时也是ISelectionProvider,这样当用户在编辑区域做选择操作是,注册的 SelectionChangeListener就可以收到选择事件。EditPartViewer会维护各个EditPart的选中状态,如果没有被选 中的EditPart,则默认选中的是作为contents的EditPart。

2.视图的实现

视图的实现相对模型来说较为复杂,出来模型的显示功能外,还要提供编辑功能、回显(Feedback)、工具提示(ToolTip)等。
在GEF中,通常视图是利用Draw2d图形(IFigure)作为表现方式,用户可以通过Draw2d的功能实现图形的展示、布局及图形的编辑。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值