Quintiq file version 2.0 
 | 
#parent: ListIssue 
 | 
Response OnClick ( 
 | 
  structured[LibOpt_Issue] selection 
 | 
) id:Response_ListIssue_MenuSelectRelatedSuboptimizerScopeElement_OnClick 
 | 
{ 
 | 
  #keys: '[142652.0.1936757326]' 
 | 
  Body: 
 | 
  [* 
 | 
    // Select the Suboptimizer Scope Elements in ListSuboptimizerScopeElement for the Issues selected here. 
 | 
     
 | 
    // The elements shown in ListSuboptimizerScopeElement is based on the selection in ListComponent. 
 | 
    // So, we need to update ListComponent first before we can select the related elements in ListSuboptimizerScopeElement.    
 | 
     
 | 
    listcomponent := LibOpt_GlobalState.GetActivatedFormComponent().ListComponent(); 
 | 
     
 | 
    // See comment about WORKAROUND below. 
 | 
    formsuboptimizerscopeelement := LibOpt_GlobalState.GetActivatedFormSuboptimizerScopeElement(); 
 | 
    listsuboptimizerscopelement := formsuboptimizerscopeelement.ListSuboptimizerScopeElement(); 
 | 
     
 | 
    // Select the Components of the related Suboptimizer Scope Elements first, 
 | 
    // to populate ListSuboptimizerScopeElement with the relevant elements.  
 | 
    traverse( selection, Elements.SuboptimizerScopeElement.Suboptimizer, suboptimizer ) 
 | 
    { 
 | 
      listcomponent.ExtendSelectByKey( suboptimizer.Key() ); 
 | 
    }   
 | 
     
 | 
    // Select the related Suboptimizer Scope Elements. 
 | 
    traverse( selection, Elements.SuboptimizerScopeElement, suboptscopelement ) 
 | 
    { 
 | 
      listsuboptimizerscopelement.ExtendSelectByKey( suboptscopelement.Key() ); 
 | 
    } 
 | 
     
 | 
    /*  WORKAROUND: 
 | 
         
 | 
        Even though we have called the `GetActivatedFormSuboptimizerScopeElement` method above, 
 | 
        LibOpt_FormSuboptimizerScopeElement doesn't get activated accordingly because the method is called 
 | 
        right after `GetActivatedFormCompenent`, where LibOpt_FormCompenent is activated. 
 | 
        This is a known software limitation (that is yet to be solved) as documented in: 
 | 
        - https://support.quintiq.com/cs:solutions:trouble:form.activate_doesn_t_work_for_second_form 
 | 
         
 | 
        As such, we use a workaround where we activate LibOpt_FormSuboptimizerScopeElement in the `OnTimer` 
 | 
        response of the GUITimerActivateFormSuboptimizerScopeElement component, which `Interval` has been 
 | 
        set to 500ms. 
 | 
        - 500ms was used because lower values don't result in the intended behavior of activating the form. 
 | 
    */ 
 | 
    // Enable the GUITimerActivateFormSuboptimizerScopeElement component. 
 | 
    // When the timer's Interval is used up, LibOpt_FormSuboptimizerScopeElement is activated, and the timer is disabled. 
 | 
    formsuboptimizerscopeelement.GUITimerActivateFormSuboptimizerScopeElement().Enabled( true ); 
 | 
  *] 
 | 
  DefinitionID => /ListIssue/Responsedef_ListIssue_Menu_OnClick 
 | 
  Initiator: 'MenuSelectRelatedSuboptimizerScopeElement' 
 | 
  Precondition: 
 | 
  [* 
 | 
    return LibOpt_Issue::SelectRelatedSuboptimizerScopeElementPrecondition( selection ); 
 | 
  *] 
 | 
} 
 |