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