Quintiq file version 2.0 
 | 
#parent: ndCalendarElement 
 | 
Response OnDraw ( 
 | 
  CalendarElement element 
 | 
) id:Response_LibCal_gcResourceCalendars_ndCalendarElement_OnDraw 
 | 
{ 
 | 
  #keys: '[131094.1.547629094]' 
 | 
  CanBindMultiple: false 
 | 
  DefinitionID: 'Responsedef_WebGanttChartNode_OnDraw' 
 | 
  QuillAction 
 | 
  { 
 | 
    Body: 
 | 
    [* 
 | 
      // CalendarElement; draw the backgroundcolor of the node based on the capacity. 
 | 
      // The color cannot be determined base on the EventType, because that is not available here. 
 | 
      // As a consequence 'Partial' with Capacity = 0.0 is visualized as 'Unavailable' and 
 | 
      // 'Partial' with Capacity = 1.0 is visualized as 'Available' here, while the TimeIntervals 
 | 
      // that define the CalendarElement are still shown as 'Partial'. 
 | 
      // But having 'Partial' with 0.0 or 1.0 is considered to be an edge-case.  
 | 
       
 | 
      showOccurrences := not isnull( dhShowOccurrences.Data() ); 
 | 
       
 | 
      // Show white as light yellow because the backgroundcolor of the row is white and cannot be changed. 
 | 
      white := Color::Color( 255, 255, 204 );  // Light yellow 
 | 
       
 | 
      if( element.Capacity() = 0.0 )       // Unavailable 
 | 
      { 
 | 
        drawinfo.BackgroundColor( Color::LightGray() ); 
 | 
      } 
 | 
      else if( element.Capacity() = 1.0 )  // Available (for completeness, is filtered out) 
 | 
      {                                    // DevNote: are currently NOT filtered out because the 'white' needs to be shown. 
 | 
        if( not showOccurrences )          // Filter of ndCalendarElement can be added back when real White can always be used. 
 | 
        { 
 | 
          drawinfo.BackgroundColor( white ); 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
          drawinfo.BackgroundColor( Color::White() ); 
 | 
        }   
 | 
      } 
 | 
      else                                 // Partially available 
 | 
      { 
 | 
        // Show the CalendarElement in light gray when the events are not shown individually, 
 | 
        // otherwise show the CalendarElement as 'white' (i.e. light yellow). In that case, partial capacity is visualized 
 | 
        // by a different node that shows the occurrence (i.e. an ExplicityTimeInterval). 
 | 
        if( not showOccurrences ) 
 | 
        { 
 | 
          backgroundColor := Color::Interpolate( Color::Gray(), white, 0.7 );  // Grayish yellow 
 | 
          drawinfo.BackgroundColor( backgroundColor ); 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
          drawinfo.BackgroundColor( Color::White() ); 
 | 
        } 
 | 
      } 
 | 
    *] 
 | 
    GroupServerCalls: false 
 | 
  } 
 | 
} 
 |