GEF Note

1.在模型中加入子模型

    GEF的模型类型(Model)类并没有要求实现GEF框架中的接口或者继承GEF框架中的类,所以如何实现子模型并且能够与相应的EditPart对应就成了一个问题。但是AbstractEditPart中的refreshChildren()和getModelChildren()方法的组合可以解决这一问题。

    首先,我们需要将模型之间的父子关系确定下来,每个模型提供由子对象访问父对象及父对象访问子对象集合的方法。

    然后在非叶子模型对象的属性改变监听方法(PropertyChangeListener的propertyChange())中,针对子对象变化的相应代码中加入refreshChildren()。refreshChildren()方法所做的工作是获取模型的父子关系,实例化对应的EditPart对象。其中最关键的就是获取该EditPart对应的模型的父子关系,由于GEF的没有对模型类型提供接口,所以无法直接由模型本身获得。

    最后,其获取模型的父子关系的途径就是getModelChildren()方法。所以我们要在模型对应的EditPart类中覆盖AbstractEditPart的getModelChildren()方法,在其中返回该EditPart对应的模型的子对象集合(调用模型本身的获取子对象集合的方法)。

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值