Quintiq file version 2.0 
 | 
#parent: CustomDrawComponentSupplyChainVisualization/CustomDrawDataLayerNode 
 | 
Response OnClickObject ( 
 | 
  shadow[SCVPISPIPNode] object 
 | 
) id:Response_CustomDrawComponentSupplyChainVisualization_CustomDrawDataLayerNode_OnClickObject 
 | 
{ 
 | 
  #keys: '[132894.0.1050777934]' 
 | 
  Body: 
 | 
  [* 
 | 
    // Click expand nav panel selection 
 | 
    pispip := object.ProductInStockingPointInPeriod(); 
 | 
    pisp := pispip.ProductInStockingPoint_MP();  
 | 
     
 | 
    index := DataHolderSelectedNodes.Data().Find( object ); 
 | 
    found := index >= 0;                     
 | 
     
 | 
    // Verify the node clicked is not the focused one( double clicked ) 
 | 
    // because we are not going to make any changes to the list 
 | 
    // if the user clicks on the focused node 
 | 
    notInFocus := not exists( DataHolderFocusedPISPIP.Data(), Elements, e,  
 | 
                              e.ProductInStockingPoint_MP() = pisp ) 
 | 
     
 | 
    if( notInFocus ) 
 | 
    { 
 | 
      if ( action.IsControl() or action.IsShift() ) 
 | 
      { 
 | 
        if( found ) // Deselect object if we ctrl / shift click on a selected node 
 | 
        { 
 | 
          DataHolderSelectedNodes.Data().Delete( index ); 
 | 
           
 | 
          DataHolderProducts.Data().Delete( DataHolderProducts.Data().Find( pisp.Product_MP() ) ); 
 | 
          DataHolderStockingPoints.Data().Delete( DataHolderStockingPoints.Data().Find( pisp.StockingPoint_MP() ) ); 
 | 
        } 
 | 
        else // Add it to the current selection if it has yet been selected 
 | 
        { 
 | 
          DataHolderSelectedNodes.Data().Add( object ); 
 | 
          DataHolderProducts.Data().Add( pisp.Product_MP() ) 
 | 
          DataHolderStockingPoints.Data().Add( pisp.StockingPoint_MP() ); 
 | 
        } 
 | 
      } 
 | 
      // If the user clicks on a node instead of ctrl / shift clicking,  
 | 
      // we flush all the previously selected nodes and select only the one newly clicked 
 | 
      else  
 | 
      {                                                    
 | 
        // Clear previously selected nodes 
 | 
        FormSupplyChainVisualization.ClearSelectedNodes(); 
 | 
        // Add newly clicked node into selection 
 | 
        DataHolderSelectedNodes.Data().Add( object ); 
 | 
        DataHolderProducts.Data().Add( pisp.Product_MP() ); 
 | 
        DataHolderStockingPoints.Data().Add( pisp.StockingPoint_MP() ); 
 | 
      } 
 | 
    } 
 | 
  *] 
 | 
  CanBindMultiple: false 
 | 
  DefinitionID: 'Responsedef_CustomDrawBaseDataLayer_OnClickObject' 
 | 
} 
 |