当前位置:主页 > 澳门威尼l斯人网址正文

澳门威尼l斯人网址_一起听吧网进入

03月18日作者:黑曼巴


因为事情的必要,近来开始钻研GEF(Graphical Editor Framework)这个框架,它可以用来给用户供给图形化编辑模型的功能,从而提升用户体验,范例的利用如图形化的流程设计器、UML类图编辑器等等。着实一年多来我们做的项目都是和它有关的,只是之前我详细认真的工作和它没什么关系。那时也看过黄老大年夜写的代码,E澳门威尼l斯人网址MF和GEF混在一路分外晕,没能坚持看下去。此次自己要着手做了,恰恰趁此时机把它搞明白,感到GEF做出来的器械给人很专业的感到,功能也很强大年夜,应该挺有澳门威尼l斯人网址出路的。此外,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上的阐明:

“Back in March, I talked a little about my initial attempts writing an Eclipse Graphical Editor Framework (GEF) application. I wanted, then, to write a tutorial that essentially walked the reader through the various stages of the development of my first application. I even suggested some kind of versioned literate programming approach to writing the tutorial and the code at the same time.

I haven't had time since then to make any progress, but I did get the GEF application to the stage where I had put together a snapshot at each of six milestones. A few people have written to me over the last six months asking the status of my tutorial and I've sent them my 澳门威尼l斯人网址six snapshots as a starting point.

It makes sense for me to just to offer them here.

You can download a ZIP file with the six snapshots at http://jtauber.com/2004/gef/gef.zip.

Hopefully they are still useful, even without a surrounding tutorial.”

必要留意一点,这个例子应该是在Eclipse 2.1里写的,以是假如你想在Eclipse 3里运行这个例子,要改动plugin.xml里的dependencies为:

再改动一下DiagramCreationWizard这个类finish()措施里page.openEditor(newFile);这句改为page.openEditor(new FileEditorInput(newFile),"com.jtauber.river.editor");,还有一些warning不太影澳门威尼l斯人网址响,可以不用管。

或者假如你不是分外发急的话,把稳我这个半新手写的GEF入门系列帖子,说不定能引起你更多的共鸣,也是一个法子吧。

GEF的进修周期是对照长的,学之前应该有这个生理筹备。分外是假如你没有开拓过Eclipse插件,那么最好先花光阴认识一下Eclipse的插件体系布局,这方面的文章照样很多的,也不是很难,基础上会开拓简单的Editor就可以了,由于GEF利用法度榜样一样平常都是在Editor里进行图形编辑的。别的,绝大年夜多半GEF利用法度榜样都是基于Dr澳门威尼l斯人网址aw2D的,可以说GEF离不开Draw2D,而后者有些观点很难搞明白,加上其文档比GEF更少,以是我会从Draw2D开始提及,当然不能讲得很深入,由于我自己也是略知外相而已。

说实话,我对写这个系列不太有信心,由于自己也是刚入门而已。但如果等到几个月后再写,很多心得怕是讲不出来了。以是照样那句话,有什么写错的请斧正,并且迎接交流。

最近关注

热点内容

更多