刘广昱
骑士
骑士
  • UID363
  • 粉丝1
  • 关注1
  • 发帖数31
  • 社区居民
阅读:13663回复:1

gef中如何控制画板中的元素新增到父容器中和改变元素大小

楼主#
更多 发布于:2017-12-01 15:12
写好了元素的model,editpart和figure后,并将其添加到画板中后需要怎样做才能让他可以在编辑器中新增?
新增到编辑器中后要如何控制它是否能改变大小?
刘广昱
骑士
骑士
  • UID363
  • 粉丝1
  • 关注1
  • 发帖数31
  • 社区居民
沙发#
发布于: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();
}
游客

返回顶部