GMF学习笔记
1.带阴影
重写Figure的paintFigure方法,先画border后画figure
2.尺寸约束(默认、最大、最小尺寸)
默认尺寸--setPreferredSize
最大尺寸--setMaximumSize
最小尺寸--setMinimumSize
3.等比例缩放
重写Figure的setBounds方法,保持长宽等比例
4.图形的控制点(选中后的8个点,没有考虑中心点)
重写EditPart的getPrimaryDragEditPolicy方法,返回一个新的ResizableShapeEditPolicy的子类。覆写该类的createHandle方法,返回一个SquareHandle的子类,这时可以将其默认的黑色正方形改成空心小圆圈。
5.图形容器的折叠
installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,ResizableCompartmentEditPolicy)
ResizableCompartmentEditPolicy->CompartmentCollapseHandle->Locator(relocate)
覆写CompartmentEditPart的handleNotificationEvent方法,收到折叠通知后重绘图形容器。
6.图形之间连线的路由规则
Handle
installEditPolicy(EditPolicyRoles.CONNECTION_HANDLES_ROLE,new ConnectionHandleEditPolicyEx());
getHandleFigures->ConnectionHandleEx->getImage,createDragTracker
getConnectionHandleLocator-> ConnectionHandleLocatorEx
Router
SequenceFlowEditPart-> installRouter()->EdgeRectilinearRouter
7.图形容器的吸附特性,比如在子流程上放边界事件
建立一个Border的Compartment图形容器,用来放置边界事件,其有一半的区域和子流程的图形重叠,从而形成吸附的效果。
8.图形的说明性文本在图形中水平和垂直两个方向居中
水平居中--setAlignment(PositionConstants.CENTER);
垂直居中--setTextJustification(PositionConstants.CENTER);
9.带阴影的图形,其控制点应排除阴影部分
重写Figure的getHandleBounds方法
10.图形拖动中覆盖其他一些图形时做鬼影提示,拖动完成后不允许覆盖其他图形
鬼影--ResizableShapeEditPolicy->SquareHandle->DragEditPartsTracker
11.图形容器中的浮动工具条
在容器的EditPart中installEditPolicy(EditPolicyRoles.POPUPBAR_ROLE, new PopupBarEditPolicyEx());
其中PopupBarEditPolicyEx继承自DiagramAssistantEditPolicy。
BpmnmodelModelingAssistantProvider负责为图形容器提供其可以选择的图形元素。
可替换在edit插件的icons/full/obj16下的图形对应的图标。
12.在图形编辑器里去除默认的note等
org.eclipse.gmf.runtime.common.ui.services.action.contributionItemProviders—工具箱remove掉对应的action
org.eclipse.gmf.runtime.diagram.ui.paletteProviders—右键菜单remove掉对应的action