protected virtual void OnCustomFilterItemToggleStateChanged( object sender, StateChangedEventArgs e) { FilterMenuCustomDateItem menuCustomDateItem = sender as FilterMenuCustomDateItem; if (menuCustomDateItem.IsChecked || menuCustomDateItem.FilterDescriptor.Operator != FilterOperator.IsEqualTo || !this.calendarItem.IsChecked) { return; } DateTime?nullable = new DateTime?(); if (menuCustomDateItem.FilterDescriptor.Value is DateTime) { nullable = new DateTime?((DateTime)menuCustomDateItem.FilterDescriptor.Value); } else if (menuCustomDateItem.FilterDescriptor.Value is DateTime?) { nullable = (DateTime?)menuCustomDateItem.FilterDescriptor.Value; } if (!nullable.HasValue) { return; } this.calendarItem.CalendarElement.Calendar.SelectedDates.Remove(nullable.Value); if (this.calendarItem.CalendarElement.Calendar.SelectedDates.Count != 0) { return; } this.calendarItem.IsChecked = false; }
protected virtual void OnButtonOkClick(EventArgs e) { CompositeFilterDescriptor filterDescriptor1 = new CompositeFilterDescriptor(); filterDescriptor1.PropertyName = this.DataColumn.Name; filterDescriptor1.LogicalOperator = FilterLogicalOperator.Or; if (this.calendarItem.IsChecked) { if (this.calendarItem.CalendarElement.Calendar.SelectedDates.Count == 0) { DateFilterDescriptor filterDescriptor2 = new DateFilterDescriptor(this.DataColumn.Name, FilterOperator.IsEqualTo, new DateTime?(this.calendarItem.CalendarElement.Calendar.FocusedDate), false); filterDescriptor1.FilterDescriptors.Add((FilterDescriptor)filterDescriptor2); } else { foreach (DateTime selectedDate in this.calendarItem.CalendarElement.Calendar.SelectedDates) { DateFilterDescriptor filterDescriptor2 = new DateFilterDescriptor(this.DataColumn.Name, FilterOperator.IsEqualTo, new DateTime?(selectedDate), false); filterDescriptor1.FilterDescriptors.Add((FilterDescriptor)filterDescriptor2); } } } foreach (RadItem radItem in (RadItemCollection)this.Items) { FilterMenuCustomDateItem menuCustomDateItem = radItem as FilterMenuCustomDateItem; if (menuCustomDateItem != null && menuCustomDateItem.IsChecked && !this.SearchForAppliedFilterDescriptors((FilterDescriptor)filterDescriptor1, menuCustomDateItem.FilterDescriptor)) { filterDescriptor1.FilterDescriptors.Add(menuCustomDateItem.FilterDescriptor); } } this.FilterDescriptor = (FilterDescriptor)filterDescriptor1; this.OnFilterConfirmed(); }
public virtual void AddCustomMenuItem(string text, FilterDescriptor descriptor) { FilterMenuCustomDateItem menuCustomDateItem = new FilterMenuCustomDateItem(text, descriptor); menuCustomDateItem.ToggleStateChanged += new StateChangedEventHandler(this.FilterMenuCustomItem_ToggleStateChanged); this.Items.Insert(this.Items.Count - 1, (RadItem)menuCustomDateItem); if (this.Size.Height != this.DefaultHeight) { return; } this.Size = new Size(this.Size.Width, this.Size.Height + 25); this.DefaultHeight += 25; }
protected virtual void SetInitialSelection() { List <DateTime> selectedDates = new List <DateTime>(); FilterDescriptor filterDescriptor = this.GetFilterDescriptor(); this.GetSelectedDates(filterDescriptor, ref selectedDates); if (this.ShouldSelectDatesInCalendar(selectedDates)) { this.calendarItem.CalendarElement.Calendar.SelectedDates.AddRange(selectedDates.ToArray()); this.calendarItem.IsChecked = true; } foreach (RadItem radItem in (RadItemCollection)this.Items) { FilterMenuCustomDateItem menuCustomDateItem = radItem as FilterMenuCustomDateItem; if (menuCustomDateItem != null) { menuCustomDateItem.IsChecked = this.SearchForAppliedFilterDescriptors(filterDescriptor, menuCustomDateItem.FilterDescriptor); } } }