本节教程在原来基础上继续完善工作流流程设计器,本节的主要内容有:
- 迁移线上加入箭头
- 使用OCL语言给活动节点类型赋值
1.在迁移线上添加箭头其实很简单,只要在gmfgraph文件中添加箭头修饰即可。
a) 在Canvas flow->Figure Gallery Default->Figure Descriptor TransitionFigure->Polyline Conneciton TransitionFigure右键点击,New Child->Polyline Decoration, 输入名称TransitionFigure, 这样为目标设置箭头了,如下图:
b)选择在Canvas flow->Figure Gallery Default->Figure Descriptor TransitionFigure节点,将Target Decoration属性设置成Polyline Decoration TransitionFigure,如下图:
c)重新生成flow.gmfgen文件,并重新生成图形代码,右键点击flow.gmfgen文件,Generate Diagram Code, 生成完毕后,运行如下:
2.使用OCL给活动节点类型赋值, 我们只需要在gmfmap文件加入OCL约束即可。
a)选择节点Mapping->Top Node Reference<activity:StartActivity/StartActivity>->Node Mapping <StartActivity/StartActivity>, 点击右键,New Child->Feature Seq Initializer, 然后选择该节点,右键点击New Child->Feature Value Spec, 在属性Feature选择Activity.type:ActivityType,然后继续新建,New Child->Constraint, 在body里面输入ActivityType::START,在Feature Seq Initializer继续新建Feature Value Spec,在属性Feature选择Activity.name:EString, 继续新建Constraint,输入‘START’, 不要忘记加引号。
如下图:
同样设置其他活动,然后重新生成gmfgen文件,生成gmfgen文件时会报错,说OCL类型不兼容,是因为OCL类型语句要求Boolean值。如下图:
我们将错误忽略,PS:之前版本的GMF没有这个错误的。
并生成代码,运行如下:
我们可以看到自动活动的类型已经将类型赋值为AUTO, 而不是之前的类型START.
源代码请见附件。
OK, 这一节讲完了,困了,要去睡觉了。
前面两节只是简单的熟悉GMF相关操作,没有编写任何JAVA代码,接下来会通过一些自定义JAVA类来完成更多的功能。
下一节的内容主要是如何自定义Node图标以及自定义形状。