| Quintiq file version 2.0 | 
| #parent: #root | 
| Method NewUnit ( | 
|   internal[GUIComponent] parent, | 
|   Unit parentunit, | 
|   Number x, | 
|   Number y | 
| ) as Unit id:Method_DialogCreateEditUnit_NewUnit | 
| { | 
|   #keys: '[121072.0.301552331]' | 
|   Body: | 
|   [* | 
|     // To create a new unit | 
|      | 
|     data := MacroPlan.Unit( relshadow,  | 
|                             Parent := parentunit, | 
|                             Currency_MP := MacroPlan.BaseCurrency(), | 
|                             UnitOfMeasure_MP := MacroPlan.DefaultUnitOfMeasure(), | 
|                             ID := ''  | 
|                             ); | 
|     Dialog.Data( data ); | 
|      | 
|     Dialog.SetDefaultCapacity(); | 
|     Dialog.SetDefaultValue( parentunit, null( Group ) ); | 
|     Dialog.EnableDisableComponent(); | 
|     Dialog.SetTooltip(); | 
|      | 
|     result := this.DoModal( parent ); | 
|      | 
|     if( result > 0 ) | 
|     { | 
|       // Calculate the default x and y position, then set to data | 
|       gridx := 0; | 
|       gridy := 0; | 
|       scv := DataHolderView.Data(); | 
|       Node::NearestGridPoint( x - scv.OffsetX(), y - scv.OffsetY(), gridx, gridy, scv.GridPointDistance() ); | 
|       data.DefaultGridX( gridx ); | 
|       data.DefaultGridY( gridy ); | 
|      | 
|       data.Commit(); | 
|     } | 
|      | 
|     return data.WrappedInstance(); | 
|   *] | 
| } |