Quintiq file version 2.0
|
#parent: ListSuboptimizerScopeElement
|
Response OnClick (
|
structured[LibOpt_SuboptimizerScopeElement] selection
|
) id:Response_ListSuboptimizerScopeElement_MenuSelectRelatedIterationsAndSnapshots_OnClick
|
{
|
#keys: '[142652.0.2010916320]'
|
Body:
|
[*
|
// Select the Iterations in ListIteration and Snapshots in ListSnapshot for the SuboptimizerScopeElements (SSEs) selected here.
|
// - The Snapshots to select are the SnapshotComponents of the Suboptimizers of the SSEs which have the ScopeElements of the SSEs in their input scopes.
|
|
listiteration := LibOpt_GlobalState.GetActivatedFormIteration().ListIteration();
|
|
// See comment about WORKAROUND below.
|
formsnapshot := LibOpt_GlobalState.GetActivatedFormSnapshot();
|
listsnapshot := formsnapshot.ListSnapshot();
|
|
// Select the related Iterations and Snapshots.
|
traverse( selection, Elements, suboptimizerscopeelement )
|
{
|
traverse( suboptimizerscopeelement.GetSnapshotComponents(), Elements, snapshotcomponent )
|
{
|
// Select the Iteration first, as the elements shown in ListSnapshot is based on the selection in ListIteration.
|
traverse( snapshotcomponent, IterationPart.IterationPartNM.Iteration, iteration )
|
{
|
listiteration.ExtendSelectByKey( iteration.Key() );
|
}
|
|
listsnapshot.ExtendSelectByKey( snapshotcomponent.Key() );
|
}
|
}
|
|
/* WORKAROUND:
|
|
Even though we have called the `ActivateFormSnapshotAndGetListSnapshot` method above, LibOpt_FormSnapshot doesn't
|
get activated accordingly because the method is called right after `ActivateFormIterationAndGetListIteration`,
|
where LibOpt_FormIteration 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_FormSnapshot in the `OnTimer` response of the
|
GUITimerActivateFormSnapshot 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 GUITimerActivateFormSnapshot component.
|
// When the timer's Interval is used up, LibOpt_FormSnapshot is activated, and the timer is disabled.
|
formsnapshot.GUITimerActivateFormSnapshot().Enabled( true );
|
*]
|
DefinitionID => /ListSuboptimizerScopeElement/Responsedef_ListSuboptimizerScopeElement_Menu_OnClick
|
Initiator: 'MenuSelectRelatedIterationsAndSnapshots'
|
Precondition:
|
[*
|
return LibOpt_SuboptimizerScopeElement::SelectRelatedIterationsAndSnapshotsPrecondition( selection );
|
*]
|
}
|