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