`
liugang594
  • 浏览: 979728 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

GEF中修改默认的FeedBack

    博客分类:
  • GEF
 
阅读更多

假如我们有两个模型: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;
	}
}

 最后结果如下图:

 

 

 

 

 

  • 描述: feedback
  • 大小: 4.4 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics