[导入](接上篇)关于GEF Feedback的补充
作者: liugang594 链接:http://liugang594.javaeye.com/blog/213347 发表时间: 2008年07月10日
声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!
重复上篇,我们有以下类:
1、模型相关:RouteMap、Homuncule,其中RouteMap含有一个或多个Homuncule
2、Policy相关:HomunculeLayoutPolicy;安装在RouteMapEditPart上用于移动Homuncule或重置它
的大小
3、EditPart相关:对应于RouteMap的RouteMapEditPart;对应于Homuncule的
HomunculeEditPart.
一个完整的feedback的方法调用请求如下:
showLayoutTargetFeedback(Request request)[HomunculeLayoutPolicy]-->showSourceFeedback(Request request)[HomunculeEditPart]-->showSourceFeedback(Request)[ResizableEditPolicy]-->createDragSourceFeedbackFigure()[ResizableEditPolicy]
查找引用关系,可以知道:ResizableEditPolicy对象只在以下处被调用:
createChildEditPolicy(EditPart child)[ConstrainedLayoutEditPolicy]
protected EditPolicy createChildEditPolicy(EditPart child) { return new ResizableEditPolicy(); }
其中ConstrainedLayoutEditPolicy类的层级关系如下图:
所以我们知道,只要重写HomunculeLayoutPolicy的createChildEditPolicy(EditPart child)方法,返回一个ResizableEditPolicy的子类,并重写它的createDragSourceFeedbackFigure()方法即可!
本文的讨论也很精彩,浏览讨论>>
JavaEye推荐
- 快来参加7月17日在成都举行的SOA中国技术论坛
- 搜狐网站诚聘Java、PHP和C++工程师
- JavaEye问答大赛开始了! 从6月23日 至 7月6日,奖品丰厚 !
- 北京: 千橡集团暨校内网诚聘软件研发工程师
文章来源:http://liugang594.javaeye.com/blog/213347