| Quintiq file version 2.0 | 
| #parent: #root | 
| Method CreateObjects ( | 
|   NamedValue nv, | 
|   shadow[LibOpt_UIOwner] owner, | 
|   String prefix, | 
|   NamedValueTree nvt, | 
|   structured[shadow[LibOpt_BT_UISetting]] existing | 
| ) id:Method_FormSettings_CreateObjects | 
| { | 
|   #keys: '[139544.1.1263142282]' | 
|   Body: | 
|   [* | 
|     children := nv.Children(); | 
|      | 
|     name := nv.Name(); | 
|     if( prefix <> '' ) | 
|     { | 
|       name := prefix + '.' + name; | 
|     } | 
|      | 
|     if( name <> '' and LibOpt_Utility::IsSettingsNode( nv ) ) | 
|     { | 
|       // Try repurposing an exinsting setting object. | 
|       setting := select( existing, Elements, elem, elem.Path() = name ); | 
|       if( isnull( setting ) ) | 
|       { | 
|         setting := owner.UISetting( relnew, Path := name ); | 
|       } | 
|       else | 
|       { | 
|         existing.Remove( setting ); | 
|       } | 
|       setting.ValueRepresentation( this.GetValueRepresentation( nv ) ); | 
|       definedby_node := guard( nv.Child( nvt.GetHandle( LibSE_SettingsContainer::Handle_Metadata() ) ) | 
|                                  .Child( nvt.GetHandle( LibSE_SettingsContainer::Handle_DefinedBy() ) ), | 
|                                null( NamedValue ) ); | 
|       if( not isnull( definedby_node ) ) | 
|       { | 
|         setting.DefinedBy( definedby_node.GetValueAsString() ); | 
|       } | 
|     } | 
|     else | 
|     { | 
|       traverse( children, Elements, child ) | 
|       { | 
|         this.CreateObjects( child, owner, name, nvt, existing ); | 
|       } | 
|     } | 
|   *] | 
| } |