| Quintiq file version 2.0 | 
| #parent: CustomDrawComponent/CustomDrawDataLayerLabels | 
| Response OnDrawObject ( | 
|   Node object | 
| ) id:Response_CustomDrawComponent_CustomDrawDataLayerLabels_OnDrawObject | 
| { | 
|   #keys: '[11660.0.305008485]' | 
|   Body: | 
|   [* | 
|     // Draw node labels | 
|     if ( not isnull( DataHolderView.Data() ) ) | 
|     { | 
|       //Set font color | 
|       surface.Font().Name( DataHolderView.Data().FontName() ); | 
|       surface.Font().Size(DataHolderView.Data().FontSize() ) | 
|       surface.Font().Bold( true ); | 
|        | 
|       color := Color::Color(0, 0, 0); | 
|       if ( object.TextColor() <> '' ) | 
|       { | 
|         color := guard( Color::Color( object.TextColor() ), ColorScheme.NodeText() ); | 
|       } | 
|       surface.TextColor( color ); | 
|      | 
|       if ( text = '' ) | 
|       { | 
|         text := object.Name(); | 
|       } | 
|      | 
|       fontheight := DataHolderView.Data().FontSize() + 3; // +3 needed to make text actually fit in fontheight | 
|       fontheight := ceil( fontheight / CustomDrawComponent.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.Width(); | 
|       totalwidth := width *  ceil( maxlength / 2 ) ; //assume each width only fits 3 chars | 
|       offset := [Number] ( ( totalwidth - width ) / 2 ); | 
|      | 
|       y := region.Height(); | 
|       if ( object.IsTextTop() ) | 
|       { | 
|         y := region.Top() - ( rows * fontheight ); | 
|       } | 
|      | 
|       if( object.IsNameVisible() ) | 
|       { | 
|         textformat := TextFormat::Construct(); | 
|         textformat.AlignMiddle().AlignCenter().NoEndEllipsis(); | 
|      | 
|         surface.Text( region.Left() - offset, y , totalwidth, ( fontheight * rows ), text, textformat ) | 
|       } | 
|     } | 
|   *] | 
|   DefinitionID: 'Responsedef_CustomDrawDataLayer_OnDrawObject' | 
| } |