| Quintiq file version 2.0 | 
| #parent: #root | 
| Method CreateNodes | 
| { | 
|   Description: | 
|   [* | 
|     Create a node for each component and create the arcs between the nodes. Use dummy nodes so each arc starts at row i and ends at row i + 1. | 
|      | 
|     We expect that the LibOpt_Component.Depth is propagated. | 
|   *] | 
|   TextBody: | 
|   [* | 
|     // Create a node for each component | 
|     traverse( this, Run.Component, component ) | 
|     { | 
|       this.UIGraphNode( relnew, | 
|                         Component := component, | 
|                         Row := component.Depth(), | 
|                         Height := 50, | 
|                         Width := 200, | 
|                         Name := component.Name(), | 
|                         ID := this.UIGraphNode( relsize ) ); | 
|     } | 
|      | 
|      | 
|     // Create arcs for each link | 
|     // Create dummy nodes so each arc is between 2 adjacent rows. | 
|     traverse( this, Run.Component.Parents, link, | 
|               not link.istype( LibOpt_LinkStart ) ) | 
|     { | 
|       origin := link.GetOrigin(); | 
|       origin_node := origin.UIGraphNode(); | 
|       for( i := origin_node.Row() + 1; i < link.Destination().UIGraphNode().Row(); i++ ) | 
|       { | 
|         dummy := this.UIGraphNode( relnew, | 
|                                    Row := i, | 
|                                    Name := origin.Name() + ' -> ' + link.Destination().Name() + ' #' + [String] i, | 
|                                    ID := this.UIGraphNode( relsize ) ); | 
|         origin_node.LinkTo( link, dummy ); | 
|         origin_node := dummy; | 
|       } | 
|       origin_node.LinkTo( link, link.Destination().UIGraphNode() ); | 
|     } | 
|   *] | 
|   InterfaceProperties { Accessibility: 'Module' } | 
| } |