GEF
文章平均质量分 75
leng1987021
这个作者很懒,什么都没留下…
展开
-
Palette面板
Palette(面板):作为图形化编辑器的一部分而普片存在。一般它作为创建节点的源,包括线,类似一个编辑器的tool。 PaletteEntry:整个Palette框架的基类,它里面存在着大量的对面板上节点描述的最基本信息。这也表明,所有的面板元素的基本信息都可以定制,包括group之类的组容器。在一个PaletteEntry对象里,你只能找到它的父,而不可以找到子,因为PaletteEn...原创 2011-12-13 15:13:29 · 509 阅读 · 0 评论 -
gef中默认提供的RootEditPart
在我们实现一个gef编辑器的时候,会重新configureGraphicalViewer()方法,在这个方法里面我们会为GraphicalViewer设置一个RootEditPart,一般是ScalableFreeformRootEditPart。 RootEditPart接口:这个接口定义了几个方法,主要是用于获取当前的EditPartViewer,在gef中EditPartViewer...原创 2011-12-07 12:57:06 · 182 阅读 · 0 评论 -
Viewport视口
Viewport视口:编辑器中当前可以见到的部分。一般在outline视图实现鹰眼功能的时候会用到这个东西。 Viewport有三个子类:FocusableViewport、RulerViewport和FreeformViewport。这三个Viewport跟gef中默认提供的RootEditPart是一一对应的:RulerRootEditPart对应于RulerViewportF...原创 2011-12-07 11:36:15 · 161 阅读 · 0 评论 -
增加Palette的拖放支持
注意:这篇文章是从刘刚的博客中获取的,主要是考虑到自己碰到类似需求,所以直接拷贝过来了,当做资料积累。 默认情况下,GEF中要创建一个新的结点都是通点在Palette上选择一个结点,然后在Editor区域单击实现的。 也有一些是通过拖放Palette中的一个对象到Editor区域来实现的。 要实现一个拖放支持也是很容易的。GEF中默认实现了一组drag-drop li...原创 2012-05-14 01:13:52 · 130 阅读 · 0 评论 -
EditPart的生命周期
EditPart是整个gef的核心层,如果想更好的扩展它,必须了解它的生命周期。 1.物理结构:整个编辑器从物理结构上来说,其实就是多个EditPartViewer组成,而从展现上来说EditPartViewer提供给编辑器的是一个SWT控件,而不是Figure(Figure也是由SWT发展而来)。对于不同的EditPartViewer会由不同的选中,其中GraphicalViewer...原创 2012-05-13 23:26:12 · 222 阅读 · 0 评论 -
Feedback(反馈)详述一
Feedback用于对gef编辑器操作的反馈,最常见的是一些鬼影效果。 1.Feedback的调用:每个gef编辑器都有一个EditDomain对象,EditDomain主要是用于触发事件用的,这样说真的很不负责任。但是,事件的转发确实是它的主要责任之一。首先它会获取到事件源,然后获取到当前活动的ActiveTool,然后转发给当前活动的ActiveTool。至于事件是如何...原创 2012-05-13 22:29:34 · 2551 阅读 · 0 评论 -
gef编辑器详述
工作以来一直都在做IDE,写篇文章记录下自己对gef的理解,再粗糙也是自己的理解,呵呵! gef主要是用于实现图形化编辑器的一个框架,尽管它主要用于实现编辑器,但是它还是可以做其它的东西的,例如官方提供的tree节点的大纲视图,就是建立在gef框架基础之上的。 1.ToolEditDomain:对于一个gef应用来说,EditDomain对象是全局唯一的,对于一...原创 2012-05-13 21:56:53 · 340 阅读 · 0 评论 -
DragTracker拖拽跟踪
DragTracker接口是gef中用于跟踪鼠标或键盘执行拖拽操作的一个接口。 它本身继承Tool,tool是gef典型的Selection层的产物,从业务流程上来讲。用户操作的第一部就是选中什么节点,然后发送什么请求,再就是得到什么相应。这对应的便是gef的tools,request,policies。 DragTracker控制的是选中后做拖拽相关操作的接口。几乎所有跟拖拽相关...原创 2012-05-11 01:17:03 · 250 阅读 · 0 评论 -
EditPart的选中
EditPart的选中状态:在EditPart里面可以通过setSelected(int value)的方式,设置对EditPart的选中状态。一共有三种选中状态:SELECTED_NONE = 0; SELECTED = 1; SELECTED_PRIMARY = 2;当你仅仅设置了这个状态的时候,编辑器界面是会有改变的,它会让你感觉选中了EditPart。但是这个时候你看大纲视图,你看...原创 2012-05-10 14:20:07 · 305 阅读 · 0 评论 -
Feedback(反馈)
Feedback(反馈):所谓反馈,是指操作时显示的一些提示信息,是对用户操作的某种响应,比如拖动某个图形时,我们一般会看到一个虚影,这就是反馈。 它告诉了用户这个图形在松开鼠标之后将会被放置在什么地方,这是一种很好的提高用户友好度的方式,也是反馈的主要目的。 反馈有两种:Source Feedback(源反馈)和Target Feedback(目标反馈)。鼠标操作的图形叫源,鼠标移到时...原创 2011-12-19 11:42:44 · 1434 阅读 · 0 评论 -
Policy策略
Policy:最基本的功能就是接收Request(请求),然后为提供相应的Command(命令),Command才是具体处理请求的。 EditPolicy:Policy的基础接口,所有的Policy都必须实现这个接口。Policy里面定义的方法基本上都常用,另外它还提供了一组特殊的方法:void showSourceFeedback(Request request),void showTa...原创 2011-12-07 16:22:41 · 1046 阅读 · 0 评论