Quintiq file version 2.0
|
#parent: #root
|
Method InitializeRecurrencePattern (
|
shadow[LibCal_RecurrencePattern] sRecurrencePattern_i,
|
Date startDate_i
|
) id:Method_LibCal_dlgEvent_InitializeRecurrencePattern
|
{
|
#keys: '[131094.0.1357896154]'
|
Body:
|
[*
|
// First initialize everything as new...
|
this.InitializeRecurrencePatternAsNew( startDate_i );
|
|
// ... then take over the existing pattern (if applicable)
|
if( not isnull( sRecurrencePattern_i ) )
|
{
|
// Daily
|
if( sRecurrencePattern_i.istype( shadow[LibCal_RecurrencePatternDaily] ) )
|
{
|
pattern := sRecurrencePattern_i.astype( shadow[LibCal_RecurrencePatternDaily] );
|
|
ckbEvery .Checked( not pattern.IsEveryWeekday() );
|
edtEveryNrOfDays.Text( [String]pattern.RecurrenceInterval() );
|
edtEveryNrOfDays.Enabled( not pattern.IsEveryWeekday() );
|
ckbEveryWeekday .Checked( pattern.IsEveryWeekday() );
|
|
this.ToggleRecurrencePattern( LibCal_RecurrencePattern::TYPE_DAILY() );
|
}
|
|
// Weekly
|
else if( sRecurrencePattern_i.istype( shadow[LibCal_RecurrencePatternWeekly] ) )
|
{
|
pattern := sRecurrencePattern_i.astype( shadow[LibCal_RecurrencePatternWeekly] );
|
|
edtEveryNrOfWeeks.Text( [String]pattern.RecurrenceInterval() );
|
|
btnMonday .Pressed( pattern.Monday() );
|
btnTuesday .Pressed( pattern.Tuesday() );
|
btnWednesday.Pressed( pattern.Wednesday() );
|
btnThursday .Pressed( pattern.Thursday() );
|
btnFriday .Pressed( pattern.Friday() );
|
btnSaturday .Pressed( pattern.Saturday() );
|
btnSunday .Pressed( pattern.Sunday() );
|
|
this.ToggleRecurrencePattern( LibCal_RecurrencePattern::TYPE_WEEKLY() );
|
}
|
|
// Monthly
|
else if( sRecurrencePattern_i.istype( shadow[LibCal_RecurrencePatternMonthly] ) )
|
{
|
pattern := sRecurrencePattern_i.astype( shadow[LibCal_RecurrencePatternMonthly] );
|
|
// Specific day
|
ckbMonthlyDay.Checked( pattern.IsDay() );
|
|
if( pattern.Day() <> 0 )
|
{
|
edtMonthlyDay.Text( [String]pattern.Day() );
|
}
|
edtMonthlyDayEveryNrOfMonths.Text( [String]pattern.RecurrenceInterval() );
|
|
// Pattern
|
ckbMonthlyPattern.Checked( not pattern.IsDay() );
|
|
if( pattern.PatternWeekOfMonth() <> "" and
|
pattern.PatternDayOfWeek() <> "" )
|
{
|
ssMonthlyPatternWeekOfMonth.BoundValue( pattern.PatternWeekOfMonth() );
|
ssMonthlyPatternDayOfWeek .BoundValue( pattern.PatternDayOfWeek() );
|
}
|
edtMonthlyPatternEveryNrOfMonths.Text( [String]pattern.RecurrenceInterval() );
|
|
this.ToggleRecurrencePattern( LibCal_RecurrencePattern::TYPE_MONTHLY() );
|
}
|
|
// Yearly
|
else if( sRecurrencePattern_i.istype( shadow[LibCal_RecurrencePatternYearly] ) )
|
{
|
pattern := sRecurrencePattern_i.astype( shadow[LibCal_RecurrencePatternYearly] );
|
|
edtEveryNrOfYears.Text( [String]pattern.RecurrenceInterval() );
|
|
// Specific date
|
ckbYearlyDay.Checked( pattern.IsDay() );
|
if( pattern.Month() <> 0 and pattern.Day() <> 0 )
|
{
|
this.SetYearlyMonthAndDay( pattern.Month(), pattern.Day() );
|
}
|
|
// Pattern
|
ckbYearlyPattern.Checked( not pattern.IsDay() );
|
if( pattern.PatternWeekOfMonth() <> "" and
|
pattern.PatternDayOfWeek() <> "" )
|
{
|
ssYearlyPatternWeekOfMonth.BoundValue( pattern.PatternWeekOfMonth() );
|
ssYearlyPatternDayOfWeek .BoundValue( pattern.PatternDayOfWeek() );
|
|
if( pattern.Month() <> 0 )
|
{
|
this.SetYearlyPatternMonth( pattern.Month() );
|
}
|
}
|
|
this.ToggleRecurrencePattern( LibCal_RecurrencePattern::TYPE_YEARLY() );
|
}
|
}
|
|
else // Show Weekly (disabled) when not recurring.
|
{
|
this.ToggleRecurrencePattern( LibCal_RecurrencePattern::TYPE_WEEKLY() );
|
this.DisableRecurrence();
|
this.ToggleRecurrencePattern( LibCal_RecurrencePattern::TYPE_NONE() );
|
}
|
*]
|
}
|