作者: liugang594 链接:http://liugang594.javaeye.com/blog/213145 发表时间: 2008年07月09日
声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!
假如我们有两个模型:RouteMap和Homuncule,其中Homuncule是包含在RouteMap中。RouteMap上安装有用于Homuncule拖动和定大小的Policy:HomunculeLayoutPolicy.
要修改Homuncule默认的FeedBack,我们需要重写HomunculeLayoutPolicy的createChildEditPolicy(EditPart child)方法。例如:
protected EditPolicy createChildEditPolicy(EditPart child) {
if (child instanceof HomunculeEditPart) {
return new HomunculeFeedBackPolicy();
} else {
return super.createChildEditPolicy(child);
}
}
然后实现HomunculeFeedBackPolicy,这里HomunculeFeedBackPolicy需要继承:ResizableEditPolicy。最后HomunculeFeedBackPolicy重写方法:createDragSourceFeedbackFigure(),例如:
public class HomunculeFeedBackPolicy extends ResizableEditPolicy {
@Override
protected IFigure createDragSourceFeedbackFigure() {
HomunculeFigure r = new HomunculeFigure(ColorConstants.lightGray);
r.setBounds(getInitialFeedbackBounds());
addFeedback(r);
return r;
}
}
最后结果如下图:
本文的讨论也很精彩,浏览讨论>>
JavaEye推荐
- 北京: 千橡集团暨校内网诚聘软件研发工程师
- 搜狐网站诚聘Java、PHP和C++工程师
- 快来参加7月17日在成都举行的SOA中国技术论坛
- JavaEye问答大赛开始了! 从6月23日 至 7月6日,奖品丰厚 !
文章来源:http://liugang594.javaeye.com/blog/213145