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 }