在进行RCP开发的时候,有一个可视化编辑器,当然可以起到事半功倍的效果。对于进销存管理系统这 样简单的程序来说,视图加对话框就可以搞定所有的程序功能,然而对于视图和对话框中的控件,如果没 有可视化编辑器的帮助,足以让开发者焦头烂额。然而选择可视化编辑器的道路却坎坷曲折,我在这里把 我的经历写出来,希望对大家有一点帮助。
先来说说VE,我想大家一想到可视化编辑器的时候,第一个就会想到VE。我在这里告诉大家,这个编 辑器你们根本不用考虑,不用浪费时间在它上面。为什么这么说呢?第一,这个编辑器的官方版本还是 2007年1月30日发布的1.2.3_jem版,这个版本只支持Eclipse3.2,不支持3.4。当然还有一个非官方的1.4 版可以用,它的安装地址为http://update.soyatec.org/Ganymede/ve/1.4,可以通过Eclispe的Update功 能进行安装。然而,这个1.4版的表现比1.2.3版还要差,它居然在编辑ViewPart的时候会出错,编辑 Dialog倒是没有什么问题,不过实在是很不好用,改个布局都难。
所以我觉得大家首选的考虑对象应该还是SWT-Designer,不过要钱,而且很贵,是239美元,如果是 239元人民币,我会毫不犹豫地买下来,但是是美元,那就另当别论了。不过如果是专做RCP开发的公司, 可以考虑,不过我想大部分做RCP开发的,都应该是我们这样的玩票吧。对于我来讲,基本上就是能不花 钱就不花钱,先不注册和激活,用起来吧,虽然只有三天时间,但是三天后删掉用户目录下的 Instantiations.license文件,又可以从头再来了。
不过别高兴得太早,免费版本居然有功能限制。比如说,想创建一个对话框,创建不了。但是我发现 ,如果我手动写一个对话框的代码,却可以用SWT-Designer编辑,对于Eclispe自动生成的View类,也可 以编辑。这功能对我来说,已经足够了。
并不是你随便写个对话框类都可以用SWT-Designer编辑的,要想它能够被可视化编辑器解析,对话框 类必须具备如下的形式:
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Dialog;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.events.ShellAdapter;
import org.eclipse.swt.events.ShellEvent;
public class LoginDialog extends Dialog {
protected Shell shell;
private int result;
public LoginDialog(Shell parent, int style) {
super(parent, style);
}
public LoginDialog(Shell parent) {
super(parent);
}
public int open(){
createContents();
return result;
}
protected void createContents(){
//注意下面这一行创建Shell时的参数,想一想我前面讲的模式对话框的概念
shell = new Shell(getParent(), SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
}
}