lazhen
2025-01-09 8afe90b633046db39042aada36b88193062f8cff
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
Quintiq file version 2.0
#parent: #root
Method RefreshScenarioStatus
{
  Description: 'To refresh the scenario state when it is loaded.'
  TextBody:
  [*
    // desmondt May-30-2014 (created)
    
    editor   := MDSEditor::Editor();
    allInfos := editor.ObjectInfos();
    
    traverse( this, ScenarioNode.astype( ScenarioMP ), scenario )
    {
      mdsInfo := select( allInfos, Elements, oInfo,
                         oInfo.MDSID().MDSKey() = scenario.DatasetMDSID() );
    
      isdatasetexists := not isnull( mdsInfo );
    
      scenario.SetScenarioLoadedStatus( isdatasetexists and mdsInfo.IsLoaded(),
                                        false /*IsLoadingInProgress*/ );        // We will only enter this method during ScenarioManager::OnConstructed, MacroPlan::OnDestructed
                                                                                // and through refresh button in the designer. We forcefully set scenario loading status to false
                                                                                // during refresh as a temporary solution to refresh the loading state. The end game is the scenario manager
                                                                                // will be revamped with reactive quill. 
    
      if( isdatasetexists )
      {
        scenario.State( mdsInfo.State() );
      }
      else
      {
        // We delete scenarios that are no longer binded to a dataset
        scenario.Delete();
      }
    }
  *]
}