Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method DisableEvent () id:Method_LibCal_dlgEvent_DisableEvent 
 | 
{ 
 | 
  #keys: '[131094.0.1233382664]' 
 | 
  Body: 
 | 
  [* 
 | 
    // Disable the event-related controls if applicable, enable them otherwise. 
 | 
    sLeadPart   := dhLeadingParticipation.Data(); 
 | 
    isInitiator := Dialog.Data().Calendar() = sLeadPart.Calendar(); 
 | 
    isRecurring := not isnull( sLeadPart.RecurrencePeriod() ); 
 | 
     
 | 
    // Only the initiator can change the Event. 
 | 
    feedback := ifexpr( not isInitiator, Translations::Event_CanOnlyBeChangedByInitiator( Dialog.Data().Initiator() ), "" ); 
 | 
     
 | 
    if( feedback <> "" ) 
 | 
    { 
 | 
      edtName                   .DisableWithUserFeedback( feedback ); 
 | 
      rbgEventType              .DisableWithUserFeedback( feedback ); 
 | 
      durStartTimeOfDay         .DisableWithUserFeedback( feedback ); 
 | 
      durEndTimeOfDay           .DisableWithUserFeedback( feedback ); 
 | 
      ckbIsAllDay               .DisableWithUserFeedback( feedback ); 
 | 
      durStartTimeOfDayRecurring.DisableWithUserFeedback( feedback ); 
 | 
      durEndTimeOfDayRecurring  .DisableWithUserFeedback( feedback ); 
 | 
      ckbIsAllDayRecurring      .DisableWithUserFeedback( feedback ); 
 | 
      btnAddDayRecurring                 .DisableWithUserFeedback( feedback ); 
 | 
      btnSubtractDayRecurring            .DisableWithUserFeedback( feedback ); 
 | 
       
 | 
      if( isRecurring ) 
 | 
      { 
 | 
        this.DisablePattern( feedback ); 
 | 
      } 
 | 
       
 | 
      // Only the initiator can change the participants. 
 | 
      btnSelectAll  .DisableWithUserFeedback( feedback ); 
 | 
      btnDeselectAll.DisableWithUserFeedback( feedback );  
 | 
      lstSubscribers.Enabled( isInitiator ); 
 | 
    } 
 | 
    else 
 | 
    {    
 | 
      edtName                   .Enabled( true ); 
 | 
      rbgEventType              .Enabled( true ); 
 | 
      durStartTimeOfDay         .Enabled( not ckbIsAllDay.Checked() ); 
 | 
      durEndTimeOfDay           .Enabled( not ckbIsAllDay.Checked() ); 
 | 
      ckbIsAllDay               .Enabled( true ); 
 | 
      durStartTimeOfDayRecurring.Enabled( not ckbIsAllDay.Checked() ); 
 | 
      durEndTimeOfDayRecurring  .Enabled( not ckbIsAllDay.Checked() ); 
 | 
      ckbIsAllDayRecurring      .Enabled( true ); 
 | 
      btnAddDayRecurring                 .Enabled( true ); 
 | 
      btnSubtractDayRecurring            .Enabled( true ); 
 | 
     
 | 
      if( isRecurring ) 
 | 
      { 
 | 
        this.EnablePattern(); 
 | 
      } 
 | 
    } 
 | 
     
 | 
    // Dates can only be changed if there is no recurrence, and only by the initiator. 
 | 
    if( isRecurring ) 
 | 
    { 
 | 
      feedback := Translations::Event_IsRecurring(); 
 | 
      datStartDate.DisableWithUserFeedback( feedback ); 
 | 
      datEndDate  .DisableWithUserFeedback( feedback ); 
 | 
    } 
 | 
    else if( not isInitiator ) 
 | 
    { 
 | 
      feedback := Translations::Event_CanOnlyBeChangedByInitiator( Dialog.Data().Initiator() ); 
 | 
      datStartDate.DisableWithUserFeedback( feedback ); 
 | 
      datEndDate  .DisableWithUserFeedback( feedback ); 
 | 
    } 
 | 
    else 
 | 
    { 
 | 
      datStartDate.Enabled( true ); 
 | 
      datEndDate  .Enabled( true ); 
 | 
    } 
 | 
     
 | 
    // Also show duration as disabled when everything else is disabled. 
 | 
    color := ifexpr( isInitiator or not isRecurring, Color::Black(), Color::Gray() ); 
 | 
    valDuration         .TextColor( color ); 
 | 
    valDurationRecurring.TextColor( color ); 
 | 
    lblOneDayRecurring           .TextColor( color ); 
 | 
  *] 
 | 
} 
 |