public override void OnViewModelLoadedOverride() { ViewModel.PropertyChanged += new WeakEventHandler <PropertyChangedEventArgs>(ViewModel_PropertyChanged).Handler; _calendarView = FindViewById <MyCalendarView>(Resource.Id.CalendarView); _calendarView.Adapter = new MyCalendarAdapter(ViewModel, ViewModel.DisplayMonth, ViewModel.FirstDayOfWeek); _calendarView_DisplayMonthChanged(_calendarView, new EventArgs()); _calendarView.DisplayMonthChanged += _calendarView_DisplayMonthChanged; _calendarView.SelectedDateChanged += _calendarView_SelectedDateChanged; _calendarView.SelectedDate = ViewModel.SelectedDate; var addItemControl = FindViewById <FloatingAddItemControl>(Resource.Id.FloatingAddItemControl); addItemControl.SupportsAddHoliday = true; addItemControl.OnRequestAddExam += AddItemControl_OnRequestAddExam; addItemControl.OnRequestAddHomework += AddItemControl_OnRequestAddHomework; addItemControl.OnRequestAddHoliday += AddItemControl_OnRequestAddHoliday; _dayPagerControl = FindViewById <DayPagerControl>(Resource.Id.DayPagerControl); _dayPagerControl.Initialize(ViewModel.SemesterItemsViewGroup, ViewModel.SelectedDate); _dayPagerControl.ItemClick += _dayPagerControl_ItemClick; _dayPagerControl.HolidayItemClick += _dayPagerControl_HolidayItemClick; _dayPagerControl.ScheduleItemClick += _dayPagerControl_ScheduleItemClick; _dayPagerControl.ScheduleClick += _dayPagerControl_ScheduleClick; _dayPagerControl.CurrentDateChanged += _dayPagerControl_CurrentDateChanged; }
public MySmallCalendarMonthView(ViewGroup parent, MyCalendarView calendarView, CalendarViewModel viewModel, DayOfWeek firstDayOfWeek) : base(parent, calendarView, firstDayOfWeek) { _viewModel = viewModel; // Now that we've set the view model, call the actual Initialize, which will then call CreateDay (which depends on the view model being set) base.Initialize(); }
public MyDataProvider(SemesterItemsViewGroup semesterItems, MyCalendarView calendarView) { _calendarView = calendarView; _semesterItems = semesterItems; _holidays = semesterItems.Items.Sublist(i => i is ViewItemHoliday); _holidays.CollectionChanged += new WeakEventHandler <NotifyCollectionChangedEventArgs>(_holidays_CollectionChanged).Handler; }
public AdaptiveView(MyCalendarView calendarView, UIPagedDayView dayView, CalendarViewModel viewModel) { _calendarView = calendarView; _dayView = dayView; _viewModel = viewModel; _viewModel.PropertyChanged += new WeakEventHandler <PropertyChangedEventArgs>(ViewModel_PropertyChanged).Handler; Add(calendarView); Add(dayView); }
public override void OnViewModelLoadedOverride() { UpdateTitle(); // Calendar _cal = new MyCalendarView(ViewModel.FirstDayOfWeek) { DisplayMonth = ViewModel.DisplayMonth, SelectedDate = ViewModel.SelectedDate }; _cal.SetSemester(ViewModel.SemesterItemsViewGroup.Semester); _cal.Provider = new MyDataProvider(ViewModel.SemesterItemsViewGroup, _cal); _cal.DateClicked += new WeakEventHandler <DateTime>(Cal_DateClicked).Handler; _cal.DisplayMonthChanged += new WeakEventHandler <DateTime>(Cal_DisplayMonthChanged).Handler; // Day pager _pagedDayView = new UIPagedDayView(ViewModel.SemesterItemsViewGroup, ViewModel) { Date = ViewModel.SelectedDate }; _pagedDayView.OnRequestViewClass += new WeakEventHandler <ViewItemClass>(PagedDayView_OnRequestViewClass).Handler; _pagedDayView.DateChanged += new WeakEventHandler <DateTime>(PagedDayView_DateChanged).Handler; _pagedDayView.OnRequestExpand += new WeakEventHandler(PagedDayView_OnRequestExpand).Handler; ViewModel.PropertyChanged += new WeakEventHandler <PropertyChangedEventArgs>(ViewModel_PropertyChanged).Handler; _container = new AdaptiveView(_cal, _pagedDayView, ViewModel) { TranslatesAutoresizingMaskIntoConstraints = false }; ContentView.Add(_container); _container.StretchWidthAndHeight(ContentView); base.OnViewModelLoadedOverride(); }
public override void OnViewModelLoadedOverride() { var cal = new MyCalendarView() { TranslatesAutoresizingMaskIntoConstraints = false, DisplayMonth = ViewModel.DisplayMonth }; cal.SetSemester(ViewModel.SemesterItemsViewGroup.Semester); cal.Provider = new MyDataProvider(ViewModel.SemesterItemsViewGroup, cal); cal.DateClicked += new WeakEventHandler <DateTime>(Cal_DateClicked).Handler; cal.DisplayMonthChanged += new WeakEventHandler <DateTime>(Cal_DisplayMonthChanged).Handler; View.Add(cal); cal.StretchWidth(base.View); cal.PinToTop(base.View); MainScreenViewController.ListenToTabBarHeightChanged(ref _tabBarHeightListener, delegate { cal.RemovePinToBottom(base.View).PinToBottom(base.View, (int)MainScreenViewController.TAB_BAR_HEIGHT); }); base.OnViewModelLoadedOverride(); }
public MyCalendarDayView(Context context, MyCalendarView calendarView, CalendarViewModel viewModel) : base(context) { _calendarView = calendarView; _viewModel = viewModel; int margin = ThemeHelper.AsPx(Context, 1); Clickable = true; LayoutParameters = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.MatchParent, LinearLayout.LayoutParams.MatchParent); _backgroundView = new View(Context) { LayoutParameters = new FrameLayout.LayoutParams( FrameLayout.LayoutParams.MatchParent, FrameLayout.LayoutParams.MatchParent) { TopMargin = margin, LeftMargin = margin, RightMargin = margin, BottomMargin = margin } }; base.AddView(_backgroundView); _backgroundOverlayView = new View(Context) { LayoutParameters = new FrameLayout.LayoutParams( FrameLayout.LayoutParams.MatchParent, FrameLayout.LayoutParams.MatchParent) { TopMargin = margin, LeftMargin = margin, RightMargin = margin, BottomMargin = margin }, Visibility = ViewStates.Gone }; base.AddView(_backgroundOverlayView); var padding = ThemeHelper.AsPx(Context, 4); _myHomeworkCircles = new MyHomeworkCircles(Context) { LayoutParameters = new FrameLayout.LayoutParams( FrameLayout.LayoutParams.MatchParent, FrameLayout.LayoutParams.WrapContent) { Gravity = GravityFlags.Bottom, LeftMargin = padding, BottomMargin = padding, RightMargin = padding } }; this.AddView(_myHomeworkCircles); _tv = new TextView(Context) { Gravity = GravityFlags.Top | GravityFlags.Right, LayoutParameters = new FrameLayout.LayoutParams( FrameLayout.LayoutParams.MatchParent, FrameLayout.LayoutParams.WrapContent) { TopMargin = ThemeHelper.AsPx(Context, 2), RightMargin = padding } }; _defaultTextColors = _tv.TextColors; this.AddView(_tv); _selectedRectangleView = new View(Context) { LayoutParameters = new FrameLayout.LayoutParams( FrameLayout.LayoutParams.MatchParent, FrameLayout.LayoutParams.MatchParent), Visibility = ViewStates.Gone }; _selectedRectangleView.Background = ContextCompat.GetDrawable(Context, Resource.Drawable.CalendarSelectedDayBorder); ViewCompat.SetBackgroundTintList(_selectedRectangleView, new ColorStateList(new int[][] { new int[0] }, new int[] { ColorTools.GetColor(this.Context, Resource.Color.accent) })); this.AddView(_selectedRectangleView); this.Click += MyCalendarDayView_Click; UpdateSelectedStatus(); _calendarView.SelectedDateChanged += new WeakEventHandler <EventArgs>(_calendarView_SelectedDateChanged).Handler; }
public override MyCalendarMonthView GetView(ViewGroup parent, MyCalendarView calendarView) { return(new MySmallCalendarMonthView(parent, calendarView, _viewModel, FirstDayOfWeek)); }