最近做了一个可视化编辑器相关的项目,采用了GMF。现在项目即将进入尾声,以后可能不再接触这个东西,so在还没有忘掉之前,将经验记录下来以供大家参考。 当然做这个项目之前,我对GMF,EMF一无所知,只是对GEF有所了解,所以可能会有些囫囵吞枣的感觉,但是相信我的理解还是会对各位有所帮助。
GMF其实是一个整合了GEF,EMF的自动化生成代码的项目。使用GMF,可以快速的生成一个包含可视化编辑器的项目,这一点网上有文章介绍:15分钟学会GMF。15分钟是夸张了一点,不过15天完成一个可视化项目,对一个熟练的GMF程序员来说,却绝对不是什么难事。但是既然使用了GMF框架,你就不得不面对以下几个问题:
一、既然是框架,自然要遵守框架的规则,GMF是模式驱动设计的,也就是说必须建好模型,才能进行下一步的开发工作。但是国内很多项目,需求总是不断更新,这种情况下,不要轻易使用GMF。
二、使用GMF框架,自然不具备GEF的灵活性,很多地方都被限制住了,不适合做灵活性非常大的图形设计。
三、不得不忍受GMF里大量的bug。
我比较过GMF1.0,2.0,2.1三个版本,其中1.0完全不能容忍,2.0比较傻,2.1还过得去,所以GMF还是值得大家期待的,毕竟是越做越好。
一个比较简单的GMF流程编辑器
个人感觉GMF非常适合做流程编辑器,主要是图形要求简单,并且适合GMF自动布局,兼之对模型要求不高。
在学习GMF之前,有必要研究一下GEF和EMF,其中GEF是必须要有所了解的,而对EMF要求不算太高,能建一个ecore模型,了解emf的commandstack就够了(其实我本人不太喜欢EMF,我更喜欢用自己的模型框架)。
GMF的学习周期大概2周左右,上手到熟练大概需要1个月的时间(我自己的学习周期),当然这期间会碰到各种各样的技术问题,针对不同的case,碰到的问题也会不一样,而我这个系列的文章,主要就是把我所遇到的问题陈列出来,并提供一个解决之道。
附GMF相关资料:
八进制:GMF常见问题
GMF Newsgroup Q and A