GEF图形操作流程

第一步:创建EditPolicy,EditPolicy用于管理一些Command命令。

第二步:在EditPart的createEditPolicies方法中安装创建的EditPolicy。

第三步:创建EditPolicy对应的command命令,将创建的命令设置到EditPolicy对应的命令获取方法中去。

第四步:在模型中设置监听器,用于当模型改变时通知对应的EditPart,例如:

      public class AbstractModel {

             private PropertyChangeSupport listeners = new PropertyChangeSupport(this);

             

             public void addPropertyChangeListener(PropertyChangeListener listener) {

                    listeners.addPropertyChangeListener(listener);

             }

 

             public void firePropertyChange(String propName, Object oldVal, Object newVal) {

                    listeners.firePropertyChange(propName, oldVal, newVal);

             }

 

             public void removePropertyChangeListener(PropertyChangeListener listener) {

                    listeners.removePropertyChangeListener(listener);

             }

      }

      具体模型可以从AbstractModel继承而来。

第五步:在EditPart中注册监听器。EditPart需要实现PropertyChangeListener接口,然后可以在EditPart的active()中把自己注册为监听器,在deactivate()中删除监听。

      以上五步即完成一个简单的图形操作流程。当操作模型时:①会产生的相应的Request(请求)。②请求发送给EditorPart。③EditPart根据Request请求查找其对应的Policy。④Policy根据请求的类型执行相应的Command命令。⑤Command命令执行后模型发生了变化,EditPart监听到模型的变化后刷新界面,至此图形操作完成。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值