| Quintiq file version 2.0 | 
| #parent: #root | 
| Method AdjustNodeYPos ( | 
|   output owning shadow[SCVConfiguration] scvConfig, | 
|   shadow[SCVNode] node, | 
|   Boolean isupstream | 
| ) id:Method_FormSupplyChainVisualization_AdjustNodeYPos | 
| { | 
|   #keys: '[134266.2.1644571]' | 
|   Body: | 
|   [* | 
|     // Adjust nodes Y position | 
|      | 
|     // To adjust the Y position of the node,  | 
|     // go to all its kids node, find their middle Y position | 
|      | 
|      | 
|     // Find the nodes using the key attribute | 
|     inputNodes := selectset( scvConfig, SCVNode, n, | 
|                              n.Depth() = node.Depth() + 1 | 
|                              and n.IsUpstream() = isupstream | 
|                              and n.OwnerNodeKey() = node.Key().AsQUILL() ) | 
|      | 
|     // Compute the center position | 
|     if( inputNodes.Size() > 0 ) | 
|     { | 
|       upperbound := max( inputNodes, Elements, e, e.Y() ); | 
|       lowerbound := min( inputNodes, Elements, e, e.Y() ); | 
|        | 
|       node.Y( lowerbound + floor( ( upperbound - lowerbound ) / 2 ) ); | 
|     } | 
|   *] | 
| } |