| Quintiq file version 2.0 | 
| #parent: #root | 
| Method EditUnit ( | 
|   internal[GUIComponent] parent, | 
|   Unit selection | 
| ) id:Method_DialogCreateEditUnit_EditUnit | 
| { | 
|   #keys: '[11660.0.16642470]' | 
|   Body: | 
|   [* | 
|     // Edit a unit | 
|      | 
|     data := shadow( selection ); | 
|      | 
|     Dialog.Data( data ); | 
|      | 
|     this.SetDefaultValue( selection.Parent(), selection.Group() ); | 
|      | 
|     DataHolderUnitSelection.Data( selection ); | 
|      | 
|     if( not isnull( data ) ) | 
|     { | 
|       CheckBoxHasStart.Checked( selection.StartDate().IsFinite() ) | 
|       CheckBoxHasEnd.Checked( selection.EndDate().IsFinite() ) | 
|     } | 
|      | 
|     Dialog.SetUI(); | 
|     Dialog.SetDefaultCapacity(); | 
|     Dialog.SetTooltip(); | 
|      | 
|     result := this.DoModal( parent ); | 
|      | 
|     if( result > 0 ) | 
|     { | 
|       parentunit := null( Unit ); | 
|       if( CheckBoxParent.Checked() ) | 
|       { | 
|         parentunit := SelectionParent.Data(); | 
|       } | 
|      | 
|       start := Date::MinDate(); | 
|       end := Date::MaxDate(); | 
|       if( CheckBoxHasStart.Checked() ) | 
|       { | 
|         start := GUIDateTimeSelectorStart.DateTime().Date(); | 
|       } | 
|       if( CheckBoxHasEnd.Checked() ) | 
|       { | 
|         end := GUIDateTimeSelectorEnd.DateTime().Date(); | 
|       } | 
|      | 
|       data.Parent( relset, parentunit ); | 
|       if( CheckBoxHasUserFrozenFutureDuration.Checked() ) | 
|       { | 
|         GUIDurationSelectorUserFrozenFutureDuration.Enabled( false ); | 
|         data.UserFrozenFutureDuration( GUIDurationSelectorUserFrozenFutureDuration.Duration() );      | 
|       } | 
|        | 
|       data.StartDate( start ); | 
|       data.EndDate( end ); | 
|       selection.UpdateTypeIndex( EditorID.Text() );      // Read-only, apply changes to shadow is not taking place for read-only attribute when editing. | 
|       data.Commit(); | 
|     } | 
|   *] | 
| } |