| Quintiq file version 2.0 | 
| #parent: #root | 
| Method SetParticipationData () id:Method_LibCal_dlgEvent_SetParticipationData | 
| { | 
|   #keys: '[131094.1.110552282]' | 
|   Body: | 
|   [* | 
|     sParticipation := dhLeadingParticipation.Data(); | 
|      | 
|     // If the StartDate is earlier than the start of the CalendarWindow, then set the StartDate | 
|     // to the date of the first recurrence within the CalendarWindow. | 
|     // This prevents showing dates from potentially long in the past. | 
|     startDate := sParticipation.StartDate(); | 
|     if( sParticipation.IsRecurring() and | 
|         startDate < sParticipation.Calendar().StartDate() ) | 
|     { | 
|       dateOfFirstRecurrence := this.GetDateOfFirstRecurrence( sParticipation.Calendar().StartDate() ); | 
|       startDate             := this.GetDateOfNextOccurrence( dateOfFirstRecurrence, dateOfFirstRecurrence ); | 
|     } | 
|      | 
|     delta := startDate - sParticipation.StartDate(); | 
|      | 
|     // Only the value of the following two controls have to be set explicitly (in this order!), | 
|     // the value of the other controls are then set via the responses of these controls. | 
|     dhEndDate  .Data( sParticipation.EndDate() + delta ); | 
|     dsStartDate.Date( startDate ); | 
|      | 
|     // Directly initialize the Duration | 
|     this.InitializeDuration(); | 
|   *] | 
| } |