WEB开发网
开发学院软件开发Java 基于 GMF 的流程分析工具的设计与实现 阅读

基于 GMF 的流程分析工具的设计与实现

 2009-12-17 00:00:00 来源:WEB开发网   
核心提示: 在一个GMF工程下面可以有多个Tool/Graph模型,同时也可以有多个Mapping模型和对应的Gen模型,基于 GMF 的流程分析工具的设计与实现(7),事实上,本实例中就是创建了两个Mapping模型和Gen模型,这里需要修改Connection的布局管理器, 首先自定一个布局管理器,分别

在一个GMF工程下面可以有多个Tool/Graph模型,同时也可以有多个Mapping模型和对应的Gen模型。事实上,本实例中就是创建了两个Mapping模型和Gen模型,分别用于Process Diagram和Flow Diagram的建模。

自定义编辑器的布局

在生成的代码框架中,GMF Diagram的默认布局管理器是FreeFormLayoutEx,在此布局管理器中,图元采用XY布局管理。这个和Process预期的自上而下的树形布局不相符,因此需要对Process Diagram的图元布局管理器进行一定的修改。

Node的布局

Node的布局是由它的父元素对应的图元的布局管理器来控制的,在Process Diagram里Node就是Process图元,它的父容器就是Diagram,这样,通过修改Diagram的布局管理器就规范了其子节点(Process节点)的布局了。

所不同的只是Layout()方法的实现,本示例中用树形的布局来组织Process节点的显示。

Connection的布局

Connection图元是一个由至少两个点组成的线/折线,并且有可能带有一个箭头指向目标节点。折线上点的位置和数量决定了折线的形状和布局。默认的两个图元之间的一个连接是一条带箭头的直线,要实现图所示的Connection的折线型布局,这里需要修改Connection的布局管理器。

首先自定一个布局管理器,在这个布局管理器里会自动计算出折线的形状。


清单 1. 自定义Connection的布局
 public class ConnectionLayout extends DelegatingLayout { 
  public void layout(IFigure parent) { 
  ... 
   Connection conn = (Connection)parent; 
   points = new PointList(); 
   while(条件成立){ 
   Point p[i] = //计算第i个节点坐标 
   Points.add(p[i]); 
   } 
   ... 
   conn.setPoints(points); 
  } 
 } 

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:基于 GMF 流程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接