图元开发
来源:互联网 发布:ubuntu安装tomcat8 编辑:程序博客网 时间:2024/05/16 11:21
图元开发
定义板型
IDE内部机制使用了UML2的模型来表达图元模型。有些图元需要在此基础上扩展、保存额外的信息,我们通过给图元定制Stereotype,扩展图元模型,达到存储信息的目的
以ReceiveEvent图元为例:该图元用于对Event事件进行解码,需要保存解码的Event事件信息,所以我们要对它的原模型进行扩展
1、定义图元的Stereotype
在xx.uml.xx.type插件的xx.profile.uml文件中定义,具体步骤如下
? 定义板型类。ReceiveEvent图元的原模型是State,为了达到我们的要求,继承了xx_state_event和xx_event_property两个模型。如下图
xx_state_event模型是为后期扩展做准备的,暂时无用
xx_event_property模型有四个属性,我们主要用前面三个Event的name、type、variable
? 定义Stereotype的继承关系。
? 定义stereotype生成的Ecore模型类。
注意1:正常情况下应该使用下图的方式自动生成。但是所有模型的URI地址都会重新 生成,导致以前做的图元,都用不了。所以这里要手动创建
注意2:stereotype的命名
名称+“::”+ 名称
如:xx::receive_event
定义ElementType
1、 扩展elementTypes扩展点
? 在xx.uml.xx.type插件中扩展
扩展点:org.eclipse.gmf.runtime.emf.type.core.elementTypes
定义如下图所示结构:图元的原模型、图元标识(semantichHint)、stereoTypes
? specializationType节点介绍。
? edithelperadvice:为图元各种操作操作之前、之后方法,如创建、移动、销毁等
? kind:用于绑定elementTypeFactory工厂。整个扩展点的加载如下:
1) 通过AbstractElementTypeEnumerator类getElementType方法加载
2) 在注册表ElementTypeRegistry中获取扩展点内容
3) 找到kind绑定的工厂进行创建
在uml.type的elementTypes扩展点(StereotypeTypeFactory)
? enablement节点介绍:符合该节点条件时,扩展点才有效
? property:判断属性。在uml.core的org.eclipse.core.expressions.propertyTesters扩展点中定义。内容如下:
其中properties定义了属性,class中定义了类用来处理逻辑判断
? value:要判断的值。这里用stereotype的值
? 通过注册表方法获取匹配上面属性的所有elementType
加入Palette面板
1、在Palette面板上展示
xx.uml.ui.diagrams.statechart插件
org.eclipse.gmf.runtime.diagram.ui.paletteProviders扩展点,
在contribution加入entry节点,定义ReceiveEvent
2、点击时创建图元
在Contribution节点修改xxStateChartDiagramPaletteFactory类createTool方法,
加入ReceiveEvent图元的创建逻辑。当点击图元时,创建图元模型
创建图元EditPart
org.eclipse.gmf.runtime.diagram.ui.editpartProviders扩展点
xxStateChartDiagramEditPartProvider类。
调用xxStateChartDiagramEditPartFactory工厂,加入对ReceiveEvent图元的图片获取。xxNameCompartmentEditPart
图元的图片资源,管理在xxStateChartDiagramResourceManager类中
创建图元View
org.eclipse.gmf.runtime.diagram.core.viewProviders扩展点,
xxStateChartDiagramViewProvider类中加入ReceiveEvent图元的处理
- 图元开发
- 图元开发2
- 图元开发3
- 图元开发4
- 图元开发
- 游戏开发之三 基本图元练习
- OpenGL开发 空间绘图:几何图元和缓冲区
- 多比矢量图开发指南(八)-图元动画
- 游戏开发笔记之三——绘制图元
- opengl 开发笔记-绘制图形(图元)
- 游戏开发学习笔记-3.基本图元绘制
- Revit API 开发 (2): 显示选中的图元(element)
- 普元基于构件开发
- 普元EOS开发流程
- 单据元数据开发流程
- Swift开发 元组Tuple
- 【 Visual C++】游戏开发笔记之三——绘制图元
- 【 Visual C++】游戏开发笔记之三——绘制图元
- 2d游戏制作原理
- 在ASP中改善动态分页的性能
- java抽象与接口
- OProfile
- SimpleQQ – WebQQ 桌面端 基于WebQQ 1.00内核
- 图元开发
- Spring中的自动装配案例分析
- CCClippingNode遮罩解析
- 应用“ORA-01000:超出最多允许打开的游标数”故障排除
- 关于JavaScript是否会阻塞图片加载
- Jquery元素追加和删除
- 登录PL/SQL Developer报异常:ORA-12154: TNS: 无法解析指定的连接标识符
- 施用CSS3生成一个inset盒子阴影(带透明度)
- Unity3D开发总结一