| 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 | 
|   } | 
| } |