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