| Quintiq file version 2.0 | 
| #parent: #root | 
| Method SelectConditionalType ( | 
|   internal[GUIComponent] parent, | 
|   internal[Type] roottype, | 
|   internal[Type] excludetype | 
| ) as shadow[LibOpt_UIConditionalType] id:Method_LibOpt_DialogConditionalTypes_SelectConditionalType | 
| { | 
|   #keys: '[143908.0.730099744]' | 
|   Body: | 
|   [* | 
|     // shows the dialog in a modal way and returns the user-selected conditional type's name | 
|      | 
|     // When the dialog opens, create a new shadow[LibOpt_UIOwner], store it in the dataholder | 
|     owner := construct( shadow[ LibOpt_UIOwner ] ); | 
|     Dialog.DataHolderOwner().Data( & owner ); | 
|      | 
|     // Adds a shadow LibOpt_UIConditionalType for almost every subtype of LibOpt_BreakpointConditional/LibOpt_DatasetCopyConditional into the data holder owner.  | 
|     // The LibOpt_Breakpoint type and all LibOpt_DatasetCopyConditionalNotSelectable subtypes (e.g. LibOpt_DatasetCopyUnconditional) are excluded | 
|     this.CreateConditionalTypes( roottype, excludetype ); | 
|      | 
|     value := Dialog.DoModal( parent ) > 0; | 
|     selection := null( shadow[ LibOpt_UIConditionalType ] ); | 
|     if( value ) | 
|     { | 
|       selection := Dialog.DataHolderSelectedType().Data(); | 
|     } | 
|      | 
|     return selection; | 
|   *] | 
| } |