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策略即可。