GEF学习教程3-Unplugged版

今天我要继续修改前面的例子.
运行效果如下图所示:



代码下载

为了达到这样的效果,我们必须修改原来的model,现在的model UML图是这样的:



一些需要考虑的问题:
1.Layout:
因为这里出现了好3个组合的关系,意味着有parent--children的关系,那么我们必须考虑为parent的figure设置什么Layout来管理children.
2.Command:
不同的事件需要不同的Command,这一次我还是只是增加和修改了对应的CreateCommand.
3.Policy:
根据不同的Layout使用不同的LayoutPolicy
下面的表格显示了我的结构:
modelFigureFigure使用的Layout

 

EditPartEditPart安装的EditPolicy
ContentContentFigureXYLayoutContentPartXYLayoutEditPolicy
ContainerContainerFigureToolbarLayoutContainerPartOrderLayoutEditPolicy
ColumnColumnFigureFlowLayoutColumnPartFlowLayoutEditPolicy
NodeNodeFigureToolbarLayoutNodePart

因为model做了比较大的修改,所以源代码很多地方都改过了:P

有些地方千万不要忘记了:
比如ContainerPart里的两个方法需要覆写:
ContainerEditPart.java
@Override
    
protected  List getModelChildren()  {
        
return ((Container) getModel()).getChildren();
    }

    
    @Override
    
protected   void  refreshVisuals()  {
        Rectangle constraint 
= ((Container) getModel()).getConstraint();
        ((GraphicalEditPart) getParent()).setLayoutConstraint(
this,
                getFigure(), constraint);
    }

代码下载

参考资源:
GEF学习教程1-Unplugged版
GEF学习教程2-Unplugged版
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值