Quintiq file version 2.0
|
#parent: #root
|
Method GetColor (
|
LibOpt_Component object
|
) as internal[Color] id:Method_LibOpt_FormComponentGraph_GetColor
|
{
|
#keys: '[140544.1.799764107]'
|
Body:
|
[*
|
color_string := object.UIColor();
|
|
color := null( Color, owning );
|
|
if( [Boolean]ValueHolderShowHeatMap.Value() )
|
{ //use heat map
|
colorLow := Color::Color( [Number]ValueHolderHeatMapLow.Value() );
|
colorMid := Color::Color( [Number]ValueHolderHeatMapMid.Value() );
|
colorHi := Color::Color( [Number]ValueHolderHeatMapHigh.Value() );
|
|
durationZero := Duration::Zero();
|
|
minDuration := durationZero;
|
maxDuration := durationZero;
|
avgDuration := durationZero;
|
|
objDuration := object.GetDuration( minDuration, maxDuration, avgDuration );
|
|
if( maxDuration <> durationZero ) //check if some durations are not 0
|
{
|
if( objDuration <= avgDuration )
|
{
|
range := avgDuration - minDuration;
|
ratio := 0.0;
|
if( range <> durationZero )
|
{
|
ratio := ( objDuration - minDuration )/ range;
|
}
|
|
color := Color::Interpolate( colorLow, colorMid, ratio );
|
}
|
else
|
{
|
range := maxDuration - avgDuration;
|
ratio := 0.0;
|
if( range <> durationZero )
|
{
|
ratio := ( objDuration - avgDuration ) / range;
|
}
|
|
color := Color::Interpolate( colorMid, colorHi, ratio );
|
}
|
}
|
}
|
else
|
{ //use component colors
|
if( color_string.SubString( 0, 1 ) = '#' )
|
{
|
color_num := LibOpt_Utility::GetColorFromHex( color_string.SubString( 1, color_string.Length() - 1 ) )
|
color := Color::Color( color_num );
|
}
|
else
|
{
|
color := Color::Color( color_string );
|
}
|
}
|
|
return &color;
|
*]
|
Declarative: true
|
ReturnsOwning: true
|
}
|