GEF事件流程

详细的事件流程: 
1.
用户点击相关可视化控件,发出鼠标或者键盘的事件. 
2. SWT Control
捕获到键盘或者鼠标的事件?参考SWTCanvas接口(SWT Events). 
3.
然后将事件传递到EditPartViewer中进行处理?参考GraphicalViewerIFigure接口.(实现类为GraphicalViewerImpl,Figure) Draw2D系统中的LightWeightSystem,Events. 
4.
EditPartViewer中处理完后,然后继续将事件传递到EditDomain中处理?参考EditDomain, 
5.
EditDomain类处理完成后,继续将事件传递到Active Tool来处理?参考SelectionTool,SelectEditPartTracker (他们superClassTargetingTool) 
6.
至此事件的传递完成.接着由Tool产生Request接口类型的request?参考SelectionRequest. 
7. EditPart
来处理产生的request?参考AbstractEditPart中的performRequest()方法, AbstractGraphicalEditPart. 
8.
EditPart中安装了EditPolicy?参考GraphicalNodeEditPolicy 
9.
EditPolicy类中创建若干Command, 其中关于redo,undo操作的command 形成CommandStack(实际上就是一个ArrayList),?参考CompoundCommand. 
10.
到一定的时候执行Command中的execute方法.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值