由于项目需要,我开始研究"GEF" (Graphical Editor Framework)这个框架。初次接触的时候,也是通过看IBM的RedBook,当时我跟八进制一样,也是因为跟EMF搅和在一起,由于EMF涉及到很多MDA的概念,根本就是不知所云,无奈中途放弃。于是我当时选择了JGrpah这个框架来进行开发,但后来由于种种原因,还是回到了GEF这条路。接触之后,觉得从未来程序扩展的角度来讲,GEF自然是不二之选,于是选择了GEF。
我觉得GEF的学习周期比较长,加上我本身不是计算机专业毕业的,程序的功力自然很差。之前也没有开发过任何Eclipse的插件。所以学习起来比较困难,我把我学习过程中的心得体会记录下来,当然也包括看到其他前辈的帖子的指点的一些心得,希望能够得到同道中人的帮助和建议,抛砖引玉。
GEF的绝大多数应用程序的Viewer层都是基于Draw2D的,因此涉及到了很多Draw2D的概念,如Figure等等。
一些我认为很好的GEF教程有: IBM的RedBook,我觉得Redbook是一个基础,但是由于其中的例程都是基于Eclipse2.0的,加上没有最简单的完整例程,所以不太好理解。有人推荐SWT/JFace in Actions 最后一章也是介绍GEF的,并且提供了一个例程,一个朋友还把这个例子改成了独立的RCP程序。有了一定的基础后,我觉得看一看GEF SDK的帮助中的Programmer Guide,我觉得其中的讲解还是很好的。还有一个很重要的就是八进制的blog,也可以当作入门的教材来看了。在下也是认认真真地读了,并借鉴了很多有用的东西。另外GEF的主要作者IBM的Hudsonr先生也有一篇文章"Create an Eclipse-based application using the Graphical Editing Framework" 也是一个很好的教材。
GEF 概述:
典型的MVC框架结构。 这个图可以看出来,在GEF中,Model 和Viewer 分别只与Controller打交道. Controller 在GEF里面称为
EditPart, 每一个Model都对应一个相应的EditPart对象来监听模型变化、将用户编辑结果
反映到模型上面。
浙公网安备 33010602011771号