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