一、概述
Graphical Editing Framework (GEF) 是目前为止介绍的最震撼的Eclipse工具了。GEF使用
基于SWT插件Draw2d建立图形环境。对MVC (model-view-controller) architecture感兴趣的赶快研究源代码吧。
先看一个例子震撼一下:
GEF可以用于开发以下应用:
flow builders,
GUI builders,
UML diagram editors (such as work-flow and class modeling diagrams),
WYSIWYG text editors like HTML
参考文档:
Display a UML Diagram using Draw2D Daniel Lee (IBM) August 25, 2003
Using Native Drag and Drop with GEF Eric Bordeau (IBM) August 25, 2003
Create an Eclipse-based Application using the Graphical Editing Framework Randy Hudson (IBM) July 29, 2003
二、GEF主要包括两个部分:
GEF和Draw2d
The Draw2d plug-in provides a standalone rendering and layout package for an SWT Canvas. It includes common shapes and layouts that can be assembled to render almost anything.
Features
Double buffered painting and optimized layouts
Various Figure and Layout implementations
Simple event routing to figures (mouse and keyboard)
Border support on figures
Cursor and tooltip support
Connection anchoring, routing and decorating
Multiple layers
Flexible coordinate systems
Overview window (thumbnail with scrolling)
The GEF plug-in uses Draw2d for rendering, but adds a rich MVC editing framework on top of it. This framework helps ensure that most graphical applications look and behave in a similar way.
Features
Tools like Selection, Creation, Connection and Marquee tools
A Palette for displaying those tools
Handles for resizing objects and bending connections
Two types of GEF Viewers (Graphical and Tree)
A Controller framework for mapping the business Model to a View
Plug-in policies for mapping interactions with the view to changes in the model
Various implementations for showing feedback and adding selection handles
Various request types and tools or actions that send these requests to the controllers
Undo/Redo support via Commands and a CommandStack
三、下载和使用
安装后核实6个plugins:
org.eclipse.draw2d - The Draw2d plug-in
org.eclipse.gef - The GEF plug-in (requires Draw2d)
org.eclipse.draw2d.doc.isv - ISV integrated Help
org.eclipse.gef.doc.isv - ISV integrated Help
org.eclipse.gef.example.logic - A GEF example that shows containers, nodes, and connections.
org.eclipse.gef.example.flow - A GEF example of a flow editor.
注意后面两个例子,当你安装以后,就可以新建两种文件,logic 和 flow .