yanweiyuan3
2023-08-09 588bc7829387dfc761cc25f06f77d4c81818bd10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
Quintiq file version 2.0
#parent: #root
Method Optimizer_UpdateIconResultStatus () id:Method_ApplicationLibMacroPlanner_Optimizer_UpdateIconResultStatus
{
  #keys: '[144528.3.415842982]'
  Body:
  [*
    // Draw optimizer status
    scenario := DataHolderActiveScenario.Data();
    
    if( isnull( scenario ) )
    {
      ImageOptimizerStatus.Image( '' ); // Reset image if no active scenario (e.g scenario deleted and no more other active scenario)
    }
    else
    {                                             
      scenarioMP := scenario.astype( ScenarioMP );
      img := "";
      status := scenarioMP.OptimizerStatus();
      remark := scenarioMP.OptimizerRemark();
      runlevelfeedbacks := scenarioMP.RunUIfeedbacks();
      
      isrunning := MacroPlan::GetIsStatusRunning( status );
      lastrun := ifexpr( MacroPlan.LastOptimizerRun().IsInfinite(), "-", [String]MacroPlan.LastOptimizerRun() );
      
      if( isrunning )
      {
        img := "GEAR_RUN";
      }
      else if( Optimization::GetIsStatusTerminated( status ) )
      {
        img := "GEAR_STOP";
      }
      else if( Optimization::GetIsStatusFeasibleWithNumericalWarnings( status ) )
      {
        img := "GEAR_INFORMATION";
      }
      else if( Optimization::GetIsStatusInfeasibleExceedsTimeLimit( status, remark ) )
      {
        img := "GEAR_ERROR";
      }
      else if( Optimization::GetIsStatusInfeasibleWithinTimeLimit( status, remark ) )
      {
        img := "GEAR_WARNING";
      }
      else if( Optimization::GetIsStatusTimeLimitExceeded( status ) )
      {
        img := "GEAR_TIME";
      }
      else if( Optimization::GetIsStatusFeasibleExceedsTimeLimit( status, remark ) )
      {
        img := "GEAR_TIME";
      }
      else if( Optimization::GetIsStatusFeasibleWithinTimeLimit( status, remark ) )
      {
        img := "GEAR_OK"; 
      }
      
      ImageOptimizerStatus.Image( img );
      
      lastrunstatus := Translations::MP_Algorithm_OptimizerStatusTooltip( lastrun, status );
      
      if( isrunning )
      {
        lastrunstatus := Translations::MP_Designer_OptimizerIsRunning();
      }
      
      lastrunstatus := lastrunstatus + runlevelfeedbacks;
        
      ImageOptimizerStatus.Tooltip( lastrunstatus );
    }
  *]
}