| Quintiq file version 2.0 | 
| #parent: CustomDrawRC/CustomDrawDataLayerOperationInputGroupEdge | 
| Response OnDrawObject ( | 
|   OperationInputGroupEdge object | 
| ) id:Response_CustomDrawRC_CustomDrawDataLayerOperationInputGroupEdge_OnDrawObject | 
| { | 
|   #keys: '[139394.0.1306647308]' | 
|   CanBindMultiple: false | 
|   DefinitionID: 'Responsedef_WebCustomDrawDataLayer_OnDrawObject' | 
|   QuillAction | 
|   { | 
|     Body: | 
|     [* | 
|       // Draw PISP Operation Input Edge | 
|       rcv := MacroPlan.RoutingConfiguratorView(); | 
|        | 
|       // Adjust line based on its orientations | 
|       topdown := object.FromY() < object.ToY(); | 
|       leftright := object.FromX() < object.ToX(); | 
|       padding := 6; | 
|        | 
|       fromy := region.BoundingRect().Top() + padding; | 
|       toy := region.BoundingRect().Height() - padding; | 
|        | 
|       inputs := selectset( object, OperationInputGroup.OperationInput, input, true ); | 
|       if( topdown ) | 
|       { | 
|         if( not leftright ) | 
|         { | 
|           fromy := region.BoundingRect().Top() + padding; | 
|           toy := region.BoundingRect().Height() - padding; | 
|         } | 
|       } | 
|       else | 
|       { | 
|         if( leftright ) | 
|         { | 
|           fromy := region.BoundingRect().Height() - padding; | 
|           toy := region.BoundingRect().Top() + 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::StyleSolid() ); | 
|       surface.Pen().Width( rcv.EdgeThickness() ); | 
|        | 
|       // Draw the directional line | 
|       line := GraphicalLine::LineTo( region.BoundingRect().Left(), fromy, region.BoundingRect().Width(), toy ); | 
|       line.ArrowToEnd( true ).ArrowPos( GraphicalLine::ArrowPosMiddle() ); | 
|       surface.Draw( line ); | 
|     *] | 
|     GroupServerCalls: false | 
|   } | 
| } |