阅读:13663回复:1
gef中如何控制画板中的元素新增到父容器中和改变元素大小
写好了元素的model,editpart和figure后,并将其添加到画板中后需要怎样做才能让他可以在编辑器中新增?
新增到编辑器中后要如何控制它是否能改变大小? |
|
沙发#
发布于:2017-12-01 15:45
首先要在EditPartFactory中将model和相应的editpart关联起来:
public EditPart createUMLEditPart(EditPart context, Object model) { EditPart part = null; if(model instanceof xxxModel){ part = new xxxEditPart(); } else if(model instanceof aaaModel){ part = new aaaEditPart(); } return part; } 之后还要在编辑器的根模型对应的editpart中对要添加的模型进行注册,并且安装相应的编辑策略。 protected List getModelChildren() { //顺序重要,第一个显示在最底层,最后一个显示在最上层。 List rv = new ArrayList(); rv.addAll(getxxx()); rv.addAll(getaaa()); return rv; } protected void createEditPolicies() { installEditPolicy(EditPolicy.LAYOUT_ROLE, new xxxLayoutEditPolicy()); } 控制元素是否可以改变大小在编辑策略中实现相应方法进行控制,返回ResizableEditPolicy为可以改变大小,返回NonResizableEditPolicy为不可改变大小。 protected EditPolicy createChildEditPolicy(EditPart child) { return new ResizableEditPolicy(); //return new NonResizableEditPolicy(); } |
|