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 );
|
*]
|
}
|