haorenhui
2023-10-30 6d6cc10d9e8e242661da7fd655dec155a09d676c
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
Quintiq file version 2.0
#parent: #root
Method ToggleSettingsFormViaButtonMenu (
  internal[WebMenu] buttonMenu
) id:Method_ApplicationMacroPlanner_ToggleSettingsFormViaButtonMenu
{
  #keys: '[144528.5.1923940361]'
  Body:
  [*
    // Toggle settings form show/hide via action bar button menu
    // Reason we need these codes as we cannot pass in form instance thus need to track the form open/close via dataholder
    if( not isnull( buttonMenu ) )
    {  
      if( ApplicationMacroPlanner.MenuOptimizerSettings().Name() = buttonMenu.Name() )
      {
        // Check if form already opened (not null)
        frm := select( DataHolderSettingsForms.Data(), Elements.astype( FormOptimizerSettings ), webform, true );
        if( isnull( frm ) )
        {
          frm := construct( FormOptimizerSettings );
          frm.ShowDockRight();       
        }
        else
        {
          frm.Close();
        }
      }
      else if( ApplicationMacroPlanner.MenuOptimizerPuzzles().Name() = buttonMenu.Name() )
      {
        // Check if form already opened (not null)
        frm := select( DataHolderSettingsForms.Data(), Elements.astype( FormOptimizerPuzzles ), webform, true );
        if( isnull( frm ) )
        {
          frm := construct( FormOptimizerPuzzles );
          frm.ShowDockRight();     
        }
        else
        {
          frm.Close();
        }
      }
      else if( ApplicationMacroPlanner.MenuOptimizerStrategies().Name() = buttonMenu.Name() )
      {
        // Check if form already opened (not null)
        frm := select( DataHolderSettingsForms.Data(), Elements.astype( FormOptimizerStrategiesSlideIn ), webform, true );
        if( isnull( frm ) )
        {
          frm := construct( FormOptimizerStrategiesSlideIn );
          frm.ShowDockRight();       
        }
        else
        {
          frm.Close();
        }
      }
    }
  *]
}