| 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 | 
| } |