Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Response OnDrop ( 
 | 
  structured[StockingPointNode] information, 
 | 
  Unit target 
 | 
) id:Response_ListUnitTree_OnDrop_3 
 | 
{ 
 | 
  #keys: '[11660.0.254126775]' 
 | 
  Body: 
 | 
  [* 
 | 
    // Add as input stocking point node for unit 
 | 
    // #9446: Added CTRL modifier to link in reverse direction 
 | 
    feedback := ''; 
 | 
    stockingPoints := selectset( information, Elements.StockingPoint_MP, stockingPoint, true, true ); 
 | 
     
 | 
    if( dropaction.IsLink() 
 | 
        and not target.CanLinkToStockingPoints( feedback, stockingPoints, true ) ) //if shift+control is hold and can unlink 
 | 
    { 
 | 
      target.RemoveAsInputToStockingPoints( stockingPoints ); 
 | 
    } 
 | 
    else //this intends to link (shift+control is not hold) 
 | 
    { 
 | 
      target.LinkToStockingPoints( stockingPoints, not dropaction.IsControl() ); 
 | 
    } 
 | 
  *] 
 | 
  DefinitionID: 'Responsedef_GUIComponent_OnDrop' 
 | 
  Precondition: 
 | 
  [* 
 | 
    ret_value := true; 
 | 
     
 | 
    if( not dropaction.IsLink() ) //if shift+control not hold, means linking and need to check preconditions 
 | 
    { 
 | 
      stockingPoints := selectset( information, Elements.StockingPoint_MP, stockingPoint, true, true ); 
 | 
      ret_value := target.CanLinkToStockingPoints( feedback, stockingPoints, not dropaction.IsControl() ); 
 | 
    } 
 | 
     
 | 
    return ret_value; 
 | 
  *] 
 | 
  UserRequiresReadWrite: true 
 | 
} 
 |