protected override void OnMonthChanged()
            {
                _title.Text = Month.ToString("MMMM yyyy");

                var semester = _viewModel?.SemesterItemsViewGroup?.Semester;

                if (semester != null && !semester.IsMonthDuringThisSemester(Month))
                {
                    OverlayView = new DifferentSemesterOverlayControl(Context)
                    {
                        LayoutParameters = new FrameLayout.LayoutParams(
                            FrameLayout.LayoutParams.MatchParent,
                            FrameLayout.LayoutParams.MatchParent)
                    };
                }
                else
                {
                    OverlayView = null;
                }

                base.OnMonthChanged();
            }
示例#2
0
        private void RenderDate(DateTime date)
        {
            // Clear current items
            var col = _scheduleHost.GetChildAt(getColumn(date.DayOfWeek)) as ViewGroup;

            // Remove all but the day header and all day items
            while (col.ChildCount > 2)
            {
                col.RemoveViewAt(2);
            }

            // Get arranger for the date
            var arranger = ViewModel.Items[date.DayOfWeek];

            foreach (var s in arranger.ScheduleItems)
            {
                var scheduleItem = new MyScheduleItemView(Context, s.Item);
                scheduleItem.Clickable = true;
                scheduleItem.Click    += ScheduleItem_Click;

                AddVisualItem(scheduleItem, s, date.DayOfWeek);
            }

            // Reverse the order so that when items expand, they appear on top of the items beneath them.
            // Otherwise I would have to do some crazy Z-order logic.
            foreach (var e in arranger.EventItems.Reverse())
            {
                View visual;
                if (e.IsCollapsedMode)
                {
                    visual = new MyCollapsedEventItem(Context)
                    {
                        Item = e
                    };
                }
                else
                {
                    visual = new MyFullEventItem(Context)
                    {
                        Item = e
                    };
                }

                AddVisualItem(visual, e, arranger.Date.DayOfWeek);
            }

            if (!arranger.HolidayAndAllDayItems.Any() && !arranger.EventItems.Any() && !arranger.ScheduleItems.Any() && (date.DayOfWeek == DayOfWeek.Saturday || date.DayOfWeek == DayOfWeek.Sunday))
            {
                col.Visibility = ViewStates.Gone;
            }
            else
            {
                col.Visibility = ViewStates.Visible;
            }

            if (arranger.HasHolidays)
            {
                var overlay = new View(Context)
                {
                    Background       = new ColorDrawable(new Color(228, 0, 137, 40)),
                    LayoutParameters = new ViewGroup.LayoutParams(LayoutParams.MatchParent, LayoutParams.MatchParent)
                };
                col.AddView(overlay);
            }

            if (arranger.IsDifferentSemester)
            {
                var diffSemesterOverlay = new DifferentSemesterOverlayControl(Context)
                {
                    LayoutParameters = new ViewGroup.LayoutParams(
                        ViewGroup.LayoutParams.MatchParent,
                        ViewGroup.LayoutParams.MatchParent)
                };
                diffSemesterOverlay.PinButtonToTop(60);
                col.AddView(diffSemesterOverlay);
            }

            //UpdateTimePaddingBasedOnAllDayItems();
        }