| Quintiq file version 2.0 | 
| #parent: CustomDrawSCO/CustomDrawDataLayerLabels | 
| Response OnDrawObject ( | 
|   Node object | 
| ) id:Response_CustomDrawSCO_CustomDrawDataLayerLabels_OnDrawObject | 
| { | 
|   #keys: '[136682.0.1905115950]' | 
|   CanBindMultiple: false | 
|   DefinitionID: 'Responsedef_WebCustomDrawDataLayer_OnDrawObject' | 
|   QuillAction | 
|   { | 
|     Body: | 
|     [* | 
|       // Draw node labels | 
|       view := object.ViewBase().astype( SupplyChainView ); | 
|       if ( not isnull( view ) ) | 
|       { | 
|          | 
|         //Set font color | 
|         surface.Font().Name( view.FontName() ); | 
|         surface.Font().Size( view.FontSize() ) | 
|         surface.Font().Bold( true ); | 
|          | 
|         color := Color::Color(0, 0, 0); | 
|         if ( object.TextColor() <> '' ) | 
|         { | 
|           color := guard( Color::Color( object.TextColor() ), ColorScheme.SupplyChainOverview_NodeText() ); | 
|         } | 
|         surface.TextColor( color ); | 
|        | 
|         if ( text = '' ) | 
|         { | 
|           text := object.Name(); | 
|         } | 
|        | 
|         fontheight := view.FontSize() + 3; // +3 needed to make text actually fit in fontheight | 
|        /* fontheight := ceil( fontheight / CustomDrawSCO.ZoomY() )*/ // Make fontheight independent of zoom level | 
|         rows := text.Tokenize( String::NewLine() ).Size(); | 
|         maxlength := max( text.Tokenize( String::NewLine() ), Elements, e, e.Length() ) | 
|         width := region.BoundingRect().Width(); | 
|         totalwidth := width *  ceil( maxlength / 2 ) ; //assume each width only fits 3 chars | 
|         offset := [Number] ( ( totalwidth - width ) / 2 ); | 
|        | 
|         y := region.BoundingRect().Height(); | 
|         if ( object.IsTextTop() ) | 
|         { | 
|           y := region.BoundingRect().Top() - ( rows * fontheight ); | 
|         } | 
|        | 
|         if( object.IsNameVisible() ) | 
|         { | 
|           textformat := TextFormat::Construct(); | 
|           textformat.AlignMiddle().AlignCenter().NoEndEllipsis(); | 
|        | 
|           surface.TextZoom( region.BoundingRect().Left() - offset, y , totalwidth, ( fontheight * rows ), text, textformat ) | 
|         } | 
|       } | 
|     *] | 
|     GroupServerCalls: false | 
|   } | 
| } |