Welcome 微信登录

首页 / 软件开发 / JAVA / [Eclipse]GEF入门系列(序)

[Eclipse]GEF入门系列(序)2011-04-19 cnblogs bjzhanghao由于工作的需要,最近开始研究GEF(Graphical Editor Framework)这个框架,它可以 用来给用户提供图形化编辑模型的功能,从而提升用户体验,典型的应用如图形化的流程设 计器、UML类图编辑器等等。其实一年多来我们做的项目都是和它有关的,只是之前我具体负 责的事情和它没什么关系。那时也看过黄老大写的代码,EMF和GEF混在一起特别晕,没能坚 持看下去。这次自己要动手做了,正好趁此机会把它搞明白,感觉GEF做出来的东西给人很专 业的感觉,功能也很强大,应该挺有前途的。此外,GEF里用到了很多经典模式,最突出的如 大量应用Command模式,方便的实现Undo/Redo功能等等,通过学习GEF,等于演练了这些模式 ,比只是看看书写几个类那种学习方式的效果好很多。

现在网上关于GEF的文章和教程还不是很多(比起一年前还是增加了几篇),基本上都是 eclipse.org上的那些,其中少数几篇有中文版,中文的原创就属于凤毛麟角了,市场上似乎 也没有这方面的成书。GEF SDK里自带的文档则比较抽象,不适合入门。我觉得最好的入门方 法是结合具体的例子,一边看代码,一边对照文档,然后自己再动手做一做。当然这个例子 要简单点才好,像GEF的那个logic的例子就太复杂了,即使是flow(运行界面见下图)我觉 得也有点大;另外例子要比较规范的,否则学成错误的路子以后还要花时间改就不值得了。

用GEF编写的流程编辑器

GEF的结构决定了GEF应用程序的复杂性,即使最最简单的GEF程序也包含五六个包和十几 个类,刚开始接触时有点晕是很正常的。我找到一个还不错的例子,当然它很简单了,如果 你现在就想自己试试GEF,可以点这里下载一个zip包(若已无法下载请用这个链接),展开 后是六个项目(pt1,pt2,…,pt6),每一个是在前面一个的基础上增加一些功能得到的,pt1 是最简单的一个,这样你就可以看到那些典型的功能(例如DirectEdit、Palette等等)在 GEF里应该怎样实现了。关于这个例子的更多信息请看作者blog上的说明: