GEF中常用策略

1.删除某个结点一般是继承ComponentEditPolicy策略。实现其createDeleteCommand方法。
eg:
protected Command createDeleteCommand(GroupRequest deleteRequest) {
   DeleteCommand command = new DeleteCommand();
   command.setParentModel(getHost().getParent().getModel());
   command.setTargetModel(getHost().getModel());
   return command;
}
然后我们安装策略时installEditPolicy(EditPolicy.COMPONENT_ROLE,
    new AttributeComponentEditPolicy());
注意角色名为EditPolicy.COMPONENT_ROLE

2.直接编辑
需要继承DirectEditPolicy策略,并实现其getDirectEditCommand访求。
eg:
protected Command getDirectEditCommand(DirectEditRequest directeditrequest) {
   ClassNameDirectEditCommand command = new ClassNameDirectEditCommand();
   command.setName((String) directeditrequest.getCellEditor().getValue());
   return command;
  }
  
安装策略,installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new ClassNameDirectEditPolicy());

3.对于模型中有子元素的EditPart,一般都会安装一个EditPolicy.Layout_ROLE角色的EditPolicy,后者多为LayoutEditPolicy的子类。
比如创建新对象,一般继承XYLayoutEditPolicy,实现其getCreateCommand方法即可。然后安装EditPolicy.Layout_ROLE策略即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值