Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method UpdateNavPanelSelections ( 
 | 
  structured[ProductInStockingPointInPeriod] pispips, 
 | 
  Boolean isfocus 
 | 
) id:Method_FormSupplyChainVisualization_UpdateNavPanelSelections 
 | 
{ 
 | 
  #keys: '[139394.0.533530746]' 
 | 
  Body: 
 | 
  [* 
 | 
    // Update nav panel selection 
 | 
    entities := construct( Entitys ); 
 | 
    pisps := selectset( pispips, Elements.ProductInStockingPoint_MP, pispip, true ); 
 | 
    entities := selectset( pisps, Elements.StockingPoint_MP, sp, true ); 
 | 
    products := selectset( pisps, Elements.Product_MP, p, true ); 
 | 
     
 | 
    if( isfocus ) 
 | 
    { 
 | 
      DataHolderUpdatedEntities.Data( entities.Copy()) 
 | 
      DataHolderUpdatedProduct.Data( products.Copy() ); 
 | 
      pispip := pispips.Element( 0 ); 
 | 
      DataHolderDisplayPISPIP.Data( pispip ); 
 | 
    } 
 | 
    else 
 | 
    { 
 | 
      dhEntities := DataHolderCheckedEntities.Data().Copy(); 
 | 
      dhProduct := DataHolderCheckedProduct.Data().Copy(); 
 | 
      // Append new selection into nav panel 
 | 
      previouslySelectedEntities := construct( Entitys ); 
 | 
      previouslySelectedPISPs := selectset( DataHolderSelectedPISPs.Data(), Elements, e, true ); 
 | 
      previouslySelectedEntities := selectset( previouslySelectedPISPs, Elements.StockingPoint_MP, sp, true ); 
 | 
      previouslySelectedProducts := selectset( previouslySelectedPISPs, Elements.Product_MP, p, true ); 
 | 
       
 | 
      // Append newly selected items 
 | 
      tobeAddedEntities := entities.Difference( previouslySelectedEntities ); 
 | 
      tobeAddedProducts := products.Difference( previouslySelectedProducts ); 
 | 
      dhEntities := dhEntities.Add( tobeAddedEntities ); 
 | 
      dhProduct := dhProduct.Add( tobeAddedProducts ); 
 | 
         
 | 
      // Remove deselected items 
 | 
      tobeRemovedEntities :=  previouslySelectedEntities.Difference( entities ); 
 | 
      tobeRemovedProducts := previouslySelectedProducts.Difference( products );                          
 | 
      dhEntities.Remove( tobeRemovedEntities ); 
 | 
      dhProduct.Remove( tobeRemovedProducts ); 
 | 
     
 | 
      if( not isnull( DataHolderDisplayPISPIP.Data() ) ) 
 | 
      { 
 | 
        // Reappend root element 
 | 
        dhEntities.Add( DataHolderDisplayPISPIP.Data().ProductInStockingPoint_MP().StockingPoint_MP() ); 
 | 
        dhProduct.Add( DataHolderDisplayPISPIP.Data().ProductInStockingPoint_MP().Product_MP() ); 
 | 
      } 
 | 
      DataHolderUpdatedEntities.Data( dhEntities.Copy() ); 
 | 
      DataHolderUpdatedProduct.Data( dhProduct.Copy() ); 
 | 
    } 
 | 
     
 | 
    DataHolderSelectedPISPs.Data( pisps.Copy() ); 
 | 
  *] 
 | 
} 
 |