GEF EditPolicies Tutorial
EditPolicy是用来分发EditPart中的编辑操作的一组接口。它的主要功能有以下一些:
- 创建编辑EditPart所需的Command。
- 管理编辑EditPart时用到的Feedback。
- 组织或重定向一些请求到另外的EditPart或是EditPolicy中去,比如一个Resize的Request,会被当前的EditPolicy重定向到去取父EditPart对应的Resize Children Request。
常用的EditPolicy
- ComponentEditPolicy:通常用来提供删除命令(Command)。
- ConnectionEndpointPolicy:但连线被选中时,在连线的两端会显示两个Selection Handle,并能够指引用户做一些改变源点或终点的操作(Reconnect)。
- BendpointEditPolicy:显示、编辑连线的拐点的EditPolicy。
- ConnectionEditPolicy:一般情况下,用来返回连线的删除命令。
- ContainerEditPolicy:容器EditPolicy,一般提供添加(Add)、新建(create)和移除(orphan)命令。
- DirectEditPolicy:提供在EditPart上直接编辑的命令。
- GraphicalNodeEditPolicy:提供创建节点之间连线命令的EditPolicy。
- LayoutEditPolicy:提供在图形中创建子元素命令的EditPolicy。
- PrimaryDrag Policy:提供移动或改变大小的命令的EditPolicy,常在LayoutEditPolicy中被设置。
EditPolicy常用方法
- boolean understandsRequest(Request request):一般情况下,工具在调用command之前,会进行EditPolicy验证。
- EditPart getTargetEditPart(Request request):和上一步的验证类似,看此EditPolicy有没有重定向。
- void showXXXFeedback(Request request):显示feedback。
- void eraseXXXFeedback(Request request):擦除feedback,如果显示了,一定要擦掉。
- Command getCommand(Request request):取得最终的Command。
Back to Home 上一篇:GEF Figures Tutorial