浅谈EclipseRCP中可用的可视化编辑器

在进行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);    }}

如果我们在这个对话框中自己处理事件循环,就更完美了,代码如下:

import org.eclipse.swt.SWT;import org.eclipse.swt.widgets.Dialog;import org.eclipse.swt.widgets.Display;import org.eclipse.swt.widgets.Shell;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();        Display display = getParent().getDisplay();        //注意下面这几行,想一想我前面讲的事件循环的概念        while (!shell.isDisposed()) {            if (!display.readAndDispatch())                display.sleep();        }        return result;    }    protected void  createContents(){        //注意下面这一行创建Shell时的参数,想一想我前面讲的模式对话框的概念        shell = new Shell(getParent(), SWT.DIALOG_TRIM |  SWT.APPLICATION_MODAL);    }}

虽然我们不能用JFace里面的Dialog类,只能用swt.widgets里面的Dialog类,但是已经满足了。剩下 的功能,就全部交给可视化编辑器了,如下图:

也就是说,只要我们探索出什么样的源代码可以被可是化编辑器分析并编辑,我们就可以省掉几百美 元的注册费。目前在网上,有人致力于SWT-Designer的破解,但是对于最新的7.0版,还是没有破解的资 料,再说,公然使用盗版也是不对的。

只要不嫌麻烦肯发送邮件,获取一个Evaluate版用用也是不错的,该版本没有任何功能限制,但是只 有十四天的时间,十四天以后,想再用就不可能了,除非你换一台机器,因为你激活的时候那边已经把你 的机器信息记录下来了。下面看看Evaluate版的截图,所有的控件都是可用的,没有灰色按钮,而且创建 对话框的向导也是可以用的:

十四天以后怎么办?这是一个问题。所以,如果免费的版本能够满足我们的要求,就尽量用免费的吧 ,怎么说它比VE要强多了。

生活若剥去理想、梦想、幻想,那生命便只是一堆空架子

浅谈EclipseRCP中可用的可视化编辑器

相关文章:

你感兴趣的文章:

标签云: