Quintiq file version 2.0
#parent: #root
Method SetDefaultValue (
  LibCal_CalendarRegistry owner
) id:Method_DialogCreateEditEventType_SetDefaultValue
{
  #keys: '[415136.0.725511682]'
  Body:
  [*
    // Set default + init dialog
    dialogInstance := dhDialogData.Data().WrappedInstance();
    isNew := isnull( dialogInstance );
    
    // Extract the parent product by filtering out the descendents of the selected products in order to prevent circularity
    eventtypes := construct( LibCal_EventTypes );
    if( isNew
        or dialogInstance.IsLeaf() ) // Is leaf
    {
      eventtypes := selectset( owner, EventType, et, true );
      currentScope := dhDialogDatas.Data();
    
      eventtypes := eventtypes.Difference( currentScope );
    }
    else if( not dialogInstance.HasParent() ) // Is root level
    {
      eventtypes := selectset( owner, RootEventType, et, et <> dialogInstance );
    }
    else // Has Parent and Child
    {
      allEventTypes := selectset( owner, EventType, et, et <> dialogInstance );
      myChildren := selectset( dialogInstance, AllChildren.AsChildren, c, true );
    
      eventtypes := allEventTypes.Difference( myChildren );
    }
    
    dhParentEventTypeSelection.Data( eventtypes.Copy() );
  *]
}
