Welcome 微信登录

首页 / 软件开发 / JAVA / [Eclipse]GEF入门系列(三、应用实例)

[Eclipse]GEF入门系列(三、应用实例)2011-04-19 cnblogs bjzhanghao构造一个GEF应用程序通常分为这么几个步骤:设计模型、设计EditPart和Figure、设计 EditPolicy和Command,其中 EditPart是最主要的一部分,因为在实现它的时候不可避免的 要使用到EditPolicy,而后者又涉及到Command。

现在我们来看个例子,它的功能非常简单,用户可以在画布上增加节点(Node)和节点间 的连接,可以直接编辑节点的名称以及改变节点的位置,用户可以撤消/重做任何操作,有一 个树状的大纲视图和一个属性页。这是一个Eclipse的项目打包文件,在Eclipse里导入后运 行Run-time Workbench,新建一个扩展名为"gefpractice"的文件就会打开这个编辑器。

图1 Practice Editor的使用界面

你可以参考着代码来看接下来的内容了,让我们从模型开始说起。模型是根据应用需求来 设计的,所以我们的模型包括代表整个图的Diagram、代表节点的Node和代表连接的 Connection这些对象。我们知道,模型是要负责把自己的改变通知给EditPart的,为了把这 个功能分离出来,我们使用名为Element的抽象类专门来实现通知机制,然后让其他模型类继 承它。Element类里包括一个PropertyChangeSupport类型的成员变量,并提供了 addPropertyChangeListener()、removePropertyChangeListener()和 fireXXX()方法分别用 来注册监听器和通知监听器模型改变事件。在GEF里,模型的监听器就是EditPart,在 EditPart的active ()方法里我们会把它作为监听器注册到模型中。所以,总共有四个类组成 了我们的模型部分。