| 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 ); | 
|   *] | 
| } |