写Eclipse插件,告别纯Ant时代

随着Eclipse的发展,很多Java项目都将告别无界面、靠ant打天下的局面,开始拥有自己美观易用的界面。(当然,轻便通用的ant还是应该支持。)我觉得最典型的就是AndroMDA了,全靠build.xml和一堆配置文件生成那么多东西,多累啊。

没写过Eclipse插件也没写过SWT应用,趁这机会小试了一把。我的代码生成插件的需求是:
1.插件读取存放元数据的model.xml文件,生成一个ListView
2.用户从ListView中选择要生成代码的Domain Object,插件弹出一个生成选项的对话框
3.用户在对话框中输入生成选项后,插件进行代码生成。

这个插件很简单,几乎不用啃什么书,按照CookBook来就行了。

1.file->new->plug-in development->plug-in project
2.选择plug-in with a view作模版,生成默认代码
3.修改xxxView.java的ViewContentProvider类的getElements()函数,该函数返回一个String[],负责生成View中对象。
4.在xxxView.java中的makeActions函数中,修改action1的run()函数,这是干活的主要函数
5.随便拿个sample,抄一个Dialog的例子出来。虽然有VE和SWT -Designer,但我的对话框比较简单,直接编辑源码了事。
6.继续修改action1的run函数,打开Dialog,并根据Dialog的返回值生成代码。

感想:
1. 写Eclipse插件很简单,SWT也比原来的想象容易一点。

2. 写一个架构超好的框架-- 用户只需编写最重要的代码,其他全部由系统默认完成;而在需要改变默认做法的时候,又总能找到扩展的接口--是如此困难,因此无论 MS的VC还是 Eclipse,都需要代码生成Wizzard来生成大量的辅助代码。不过微软的Visual Studio经常提供另一层次的编程界面,不需要直接改源码,而Eclipse只在开始根据模版生成一次代码,其他就要自己直接改源码。

3.SWT/SWing基于匿名内部类的callback机制,还不如MS 下MFC的magic宏爽。

你可能感兴趣的:(eclipse,swing,ant,mfc,vc++)