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'
|
}
|