Quintiq file version 2.0 #parent: #root Method Edit ( internal[GUIComponent] parent_i, ExplicitTimeInterval timeInterval_i ) as Number id:Method_LibCal_dlgEditTimeInterval_Edit { #keys: '[131094.0.1401969130]' Body: [* sTimeInterval := shadow( timeInterval_i ); Dialog.Data( sTimeInterval ); // In principle the dialog can also be used for 'generic' ExplicitTimeIntervals; // in that case there is no Event. event := guard( timeInterval_i.astype( LibCal_ExplicitTimeInterval ).Participation().Event(), null( LibCal_Event ) ); timezone := Dialog.GetCalendarTimeZone(); // Initialize the controls... datStartDate .Date( sTimeInterval.Start().Date( timezone ) ); // Get rid of the time, durStartTimeOfDay.Duration( sTimeInterval.Start().TimeOfDay( timezone ) ); // put it in its own control. datEndDate .Date( sTimeInterval.End().Date( timezone ) ); durEndTimeOfDay.Duration( sTimeInterval.End().TimeOfDay( timezone ) ); isAllDay := sTimeInterval.Start().TimeOfDay( timezone ) = Duration::Zero() and sTimeInterval.End() .TimeOfDay( timezone ) = Duration::Zero(); ckbIsAllDay.Checked( isAllDay ); // Show the EventInfo as tooltip of the subject of the Event. lblSubject.SetProperty( "Tooltip", guard( event.Info(), "" ) ); // ... and the 'memory'. vhStartDate.Data( datStartDate.Date() ); vhStartTimeOfDay.Data( durStartTimeOfDay.Duration() ); vhEndDate.Data( datEndDate.Date() ); vhEndTimeOfDay.Data( durEndTimeOfDay.Duration() ); this.UpdateDuration(); this.ShowAllDay(); // Hide the panel if there is no EventInfo to show. pnlEventInfo.Visible( not isnull( event ) ); return Dialog.DoModal( parent_i ); *] }