Quintiq file version 2.0 #parent: ListLibOpt_BT_UICustomSetting/DataHolderOwner Response OnCreated () id:Response_ListLibOpt_BT_UICustomSetting_DataHolderOwner_OnCreated { #keys: '[139544.1.1248681456]' Body: [* owner := construct( shadow[LibOpt_UIOwner] ); type := typeof( LibOpt_BT_CustomSetting ); allowed_args := construct( structured_Type ); allowed_args.Add( typeof( LibOpt_Optimizer ) ); allowed_args.Add( typeof( LibOpt_Optimization ) ); tv := type.TypeView(); stats := selectset( tv, Statics, stat, stat.Arguments( relsize ) = 1 and allowed_args.Find( stat.Arguments( relget ).Element( 0 ).ElementType() ) >= 0 ); instance := Dialog.Data().WrappedInstance(); levels := instance.GetSettingsAncestors(); levels.Add( instance ); existing := selectset( levels, Elements.CustomSetting, cs, true ); traverse( existing, Elements, cs ) { stat := select( stats, Elements, stat, stat.Name() = cs.MethodName() and stat.Arguments( relget ).Element( 0 ).ElementType().Name() = cs.ArgumentType() ); owner.UICustomSetting( relnew, MethodName := cs.MethodName(), ArgumentType := cs.ArgumentType(), Description := guard( stat.Description(), '' ), CanMove := cs.TrackingTableBase() = instance, DefinedOn := cs.TrackingTableBase().GetName(), IsCreated := true ); } // Find non-existing set := selectvalues( existing, Elements, cs, true, cs.MethodName() + '(' + cs.ArgumentType() + ')' ); traverse( stats, Elements, stat ) { arg := stat.Arguments( relget ).Element( 0 ); if( set.Find( stat.Name() + '(' + arg.ElementType().Name() + ')' ) < 0 ) { owner.UICustomSetting( relnew, MethodName := stat.Name(), ArgumentType := arg.ElementType().Name(), Description := stat.Description(), CanMove := true, IsCreated := false ); } } this.Data( & owner ); *] CanBindMultiple: false DefinitionID: 'Responsedef_GUIComponent_OnCreated' }