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



你的文章真是精采啊...
持續關注中...
希望有機會可以交流一下...


