GEF Programmers' Guide 中文版(Editpart生命周期)

来源:互联网 发布:mysql错误日志在哪里 编辑:程序博客网 时间:2024/05/16 05:18

生命周期

当我们提到生命周期, EditPart 最典型的就是激活 (activation) 和停用 (deactivation) 操作,激活过程中它将添加模型属性监听器,而停用时它会移除监听器。但是我们仍然有必要了解一下 EditPart 完整的生命周期。

1) 创建

最先的总是创建过程,绝大多数的 EditPart 会在 Viewer EditPartFactory 中被创建出来。在创建以后,将执行以下方法:

setModel() – 如果 EditPart 的构造方法没有将模型对象作为参数传递进来,那么 setModel() 将会被执行,以确保 EditPart 知道它维护的模型。

2) 添加到图形

setParent() – 设置 EditPart 的父 EditPart ,它提供了一个用于索引它的路径,这个路径可能会用来进行 EditPart 的注册和访问,通过 EditPart Registry

createFigure() – 创建视图 (Figure) ,注意此时父 EditPart 和模型都已经设置完毕,可以使用这些信息。

addNotify()  -- 通知子 EditPart 添加完毕,这时子 EditPart 将进行以下操作:

1.     Viewer Registry 中注册自己

2.     创建编辑策略

3.     刷新显示自己,然后初始化它自己的子节点或者连接 ( 如果存在的话 )

activate() – 激活 EditPart ,表明它已经做好了编辑的准备。父 EditPart 在自己被激活后再激活它的子 EditPart Root EditPart Viewer 被创建后激活。在激活的过程中:

1.     开始监听模型。子类应当重写这个方法,以添加必要的监听器

2.     激活所有的编辑策略

3.     激活所有的子 EditPart 和源连接的 ConnectionEditPart

3) 正常使用

这时候 EditPart 处于正常使用状态,它开始进行一系列的处理,直到它被从 Viewer 中移除或者 Viewer 关闭。

4) 停用

deactivate() – 停用 EditPart ,与 activate() 相反。 记得移除激活时添加的模型监听器。

EditPart 被移除以后还会有一些操作继续进行,但是如果是 Viewer 被关闭 ( 正常或者非正常 ) ,那么只保证执行 deactivate() 。因此, activate() deactivate() 通常需要重写而其他的方法可以忽略。

removeNofity() – 通知此 EditPart 将要被移除,在此期间, EditPart 仍然可以访问上下文环境,它会进行以下操作:

1.     确定 EditPart 没有被选中或使用

2.     调用子 EditPart removeNofify() 方法

3.     Viewer Registry 中注销自己 .

4.     移除任何以自己为源或者目的的连接 ,一般地,连接只有在源和目的都被删除以后才会自动删除,所以此处要显示的移除相关连接,以免出现只有一个端点的无效连接

setParent(null) – 移除操作的最后一步,将父 EditPart 设置为 null

EditPart 不会死而复生, 在撤销删除时,将会产生新的 EditPart 因此命令最好不要引用 EditPart 同时 EditPart 不要用来存储一些在撤销时需要使用的信息。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩每天都是脓鼻涕怎么办 夏天小孩咳嗽流黄脓鼻涕怎么办? 受凉了流清鼻涕怎么办 宝宝50多天鼻塞怎么办 50多天孩子咳嗽怎么办 2岁宝宝伤风鼻塞怎么办 2个月伤风鼻塞怎么办 3个月宝宝鼻塞怎么办 感冒治好后咳嗽一直不好怎么办 天气太热感冒了怎么办 3个月的婴儿鼻塞怎么办 四个月宝宝感冒鼻塞严重怎么办 4个月小孩鼻塞怎么办 4个多月的宝宝流鼻涕怎么办 4个月大的宝宝流鼻涕怎么办 两岁宝宝着凉了怎么办 7岁儿童晚上鼻塞怎么办 儿童感冒鼻塞怎么办速效办法 7岁儿童感冒鼻塞怎么办 七个月婴儿感冒流鼻涕怎么办 婴儿感冒流鼻涕怎么办速效办法 三个月婴儿感冒咳嗽流鼻涕怎么办 五个月婴儿感冒咳嗽流鼻涕怎么办 两个多月的宝宝鼻塞怎么办 3个月宝宝感冒鼻塞怎么办 2个月宝宝感冒鼻塞怎么办 5个月宝宝鼻塞怎么办 6个月宝宝鼻塞怎么办 3个月婴儿感冒咳嗽怎么办 感冒打喷嚏打不出来怎么办 4岁宝宝体温37.5怎么办 8个月的宝宝鼻塞怎么办 4个月婴儿鼻塞怎么办 我一躺下就鼻塞怎么办 感冒了鼻子堵了怎么办 感冒鼻涕流的多怎么办 小孩感冒鼻塞怎么办最简单方法 鼻子痒老打喷嚏流鼻涕怎么办 眼睛红痒鼻子流鼻涕怎么办 19个月宝宝流鼻血怎么办 9个月宝宝流鼻血怎么办