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

你可能感兴趣的:(eclipse,GMF)