GEF的动态变化二
之前有一篇文件介绍怎么实现GEF Editor中的图元的渐近、动态变化过程的显示技巧。
?
在GEF的Flow例子里,已经提供了另一种实现动态变化的方式,这个实现方法主要由以下三部分组成:
?
- 需要有一个辅助类,用于记录初始和终态,并计算渐近过程需要自定义一个布局类,借助上面的辅助类来给出当前布局需要窗口类控制器需要监听状态变化,以决定什么时候开始激活动态过程每个可能属于变化集的对象都需要提供一个方法,用于把自己加入到这个变化集中。
首先第一个部分,就是辅助类的实现,不过我也没写过自己的实现方式,暂且先以flow中的类作例子,见附件GraphAnimation.zip.
第二部分也是一个类实现,简单如下:
figure.setConnectionRouter(new BendpointConnectionRouter(){public void route(Connection conn) {GraphAnimation.recordInitialState(conn);if (!GraphAnimation.playbackState(conn))super.route(conn);}});?