| Quintiq file version 2.0 | 
| #parent: CustomDrawRC/CustomDrawDataLayerOperationLinkEdge | 
| Response OnDrawObject ( | 
|   OperationLinkEdge object | 
| ) id:Response_CustomDrawRC_CustomDrawDataLayerOperationLinkEdge_OnDrawObject | 
| { | 
|   #keys: '[139394.0.1292640671]' | 
|   CanBindMultiple: false | 
|   DefinitionID: 'Responsedef_WebCustomDrawDataLayer_OnDrawObject' | 
|   QuillAction | 
|   { | 
|     Body: | 
|     [* | 
|       // Draw operation link edge | 
|       rcv := MacroPlan.RoutingConfiguratorView(); | 
|        | 
|       // Adjust line based on its orientations | 
|       topdown := object.FromY() < object.ToY(); | 
|       leftright := object.FromX() < object.ToX(); | 
|       padding := 6; | 
|        | 
|       fromx := region.BoundingRect().Left() + padding; | 
|       tox := region.BoundingRect().Width() - padding; | 
|        | 
|       if( topdown ) | 
|       { | 
|         if( not leftright ) | 
|         { | 
|           fromx := region.BoundingRect().Width() - padding; | 
|           tox := region.BoundingRect().Left() + padding; | 
|         } | 
|       } | 
|       else | 
|       { | 
|         if( leftright ) | 
|         { | 
|           fromx := region.BoundingRect().Width() - padding; | 
|           tox := region.BoundingRect().Left() + padding; | 
|         } | 
|       } | 
|        | 
|       surface.Brush().Reset(); // strange. without this line, the arrow head will not be filled. | 
|       surface.Pen().Color( ColorScheme.RoutingConfigurator_RoutingArrow() ); | 
|       surface.Brush().Color( ColorScheme.RoutingConfigurator_RoutingArrow() ); // to paint the solid arrowhead | 
|        | 
|       surface.Pen().Style( PenSpecification::StyleDotted() ); | 
|       surface.Pen().Width( rcv.EdgeThickness() ); | 
|        | 
|       // Draw the directional line | 
|       line := GraphicalLine::LineTo(  fromx, region.BoundingRect().Top(), tox, region.BoundingRect().Height() ); | 
|       line.ArrowToEnd( topdown ).ArrowPos( GraphicalLine::ArrowPosMiddle() );   | 
|       surface.Draw( line ); | 
|     *] | 
|     GroupServerCalls: false | 
|   } | 
| } |