public override void ViewDidLoad() { this.CreateEvents(); base.ViewDidLoad(); this.calendarDataSource = new CalendarDataSource(this); this.CalendarView = new TKCalendar(this.View.Bounds); this.CalendarView.AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight; this.CalendarView.DataSource = this.calendarDataSource; this.View.AddSubview(this.CalendarView); NSDate date = NSDate.Now; NSDateComponents components = new NSDateComponents(); components.Year = -1; this.CalendarView.MinDate = this.CalendarView.Calendar.DateByAddingComponents(components, date, NSCalendarOptions.None); components.Year = 1; this.CalendarView.MaxDate = this.CalendarView.Calendar.DateByAddingComponents(components, date, NSCalendarOptions.None); TKCalendarMonthPresenter presenter = (TKCalendarMonthPresenter)this.CalendarView.Presenter; if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad) { presenter.InlineEventsViewMode = TKCalendarInlineEventsViewMode.Popover; } else { presenter.InlineEventsViewMode = TKCalendarInlineEventsViewMode.Inline; } presenter.InlineEventsView = new MyInlineEventsView(); presenter.InlineEventsView.MaxHeight = 140; presenter.InlineEventsView.FixedHeight = false; }
public override void ViewDidLoad () { this.CreateEvents (); base.ViewDidLoad (); this.calendarDataSource = new CalendarDataSource (this); this.CalendarView = new TKCalendar (this.View.Bounds); this.CalendarView.AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight; this.CalendarView.DataSource = this.calendarDataSource; this.View.AddSubview (this.CalendarView); NSDate date = NSDate.Now; NSDateComponents components = new NSDateComponents (); components.Year = -1; this.CalendarView.MinDate = this.CalendarView.Calendar.DateByAddingComponents (components, date, NSCalendarOptions.None); components.Year = 1; this.CalendarView.MaxDate = this.CalendarView.Calendar.DateByAddingComponents (components, date, NSCalendarOptions.None); TKCalendarMonthPresenter presenter = (TKCalendarMonthPresenter)this.CalendarView.Presenter; if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad) { presenter.InlineEventsViewMode = TKCalendarInlineEventsViewMode.Popover; } else { presenter.InlineEventsViewMode = TKCalendarInlineEventsViewMode.Inline; } presenter.InlineEventsView = new MyInlineEventsView (); presenter.InlineEventsView.MaxHeight = 140; presenter.InlineEventsView.FixedHeight = false; }
public void CalendarDaysNumOfDaysSince() { var cds = new CalendarDataSource(); var startDate = new DateTime(2019, 03, 11); var days = cds.NumOfDaysSince(DayOfWeek.Sunday, startDate); Assert.AreEqual(1, days); days = cds.NumOfDaysSince(DayOfWeek.Saturday, startDate); Assert.AreEqual(2, days); days = cds.NumOfDaysSince(DayOfWeek.Friday, startDate); Assert.AreEqual(3, days); days = cds.NumOfDaysSince(DayOfWeek.Thursday, startDate); Assert.AreEqual(4, days); days = cds.NumOfDaysSince(DayOfWeek.Wednesday, startDate); Assert.AreEqual(5, days); days = cds.NumOfDaysSince(DayOfWeek.Tuesday, startDate); Assert.AreEqual(6, days); days = cds.NumOfDaysSince(DayOfWeek.Monday, startDate); Assert.AreEqual(0, days); }
public override void ViewDidLoad() { base.ViewDidLoad(); this.tableViewDataSource = new TableViewDataSource(this); this.TableView = new UITableView(new RectangleF()); this.TableView.AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleTopMargin; this.TableView.RegisterClassForCellReuse(typeof(UITableViewCell), new NSString("cell")); this.TableView.DataSource = this.tableViewDataSource; this.View.AddSubview(this.TableView); NSCalendar calendar = new NSCalendar(NSCalendarType.Gregorian); calendar.FirstWeekDay = 2; NSDateComponents components = new NSDateComponents(); components.Year = -10; NSDate minDate = calendar.DateByAddingComponents(components, NSDate.Now, (NSCalendarOptions)0); components.Year = 10; NSDate maxDate = calendar.DateByAddingComponents(components, NSDate.Now, (NSCalendarOptions)0); this.calendarDelegate = new CalendarDelegate(this); this.calendarDataSource = new CalendarDataSource(this); this.CalendarView = new TKCalendar(new RectangleF()); this.CalendarView.AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight; this.CalendarView.Calendar = calendar; this.CalendarView.Delegate = calendarDelegate; this.CalendarView.DataSource = calendarDataSource; // >> navigation-minmaxdate-cs this.CalendarView.MinDate = minDate; this.CalendarView.MaxDate = maxDate; // << navigation-minmaxdate-cs this.CalendarView.AllowPinchZoom = true; TKCalendarMonthPresenter presenter = (TKCalendarMonthPresenter)this.CalendarView.Presenter; presenter.Style.TitleCellHeight = 40; presenter.HeaderIsSticky = true; if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad) { presenter.WeekNumbersHidden = true; // >> customizations-ipad-cs this.CalendarView.Theme = new TKCalendarIPadTheme(); // << customizations-ipad-cs presenter.Update(true); } else { presenter.WeekNumbersHidden = false; } this.View.AddSubview(this.CalendarView); }
public void CalendarDataSource_GetDays_With_1Month_Returns31() { var data = new CalendarDataSource(); var start = new DateTime(2019, 1, 1); var days = data.GetDays(start, 1); Assert.AreEqual(31, days.Count()); }
public void CalendarDataSource_GetDays_WithStartAndEnd_Returns31() { var data = new CalendarDataSource(); var start = new DateTime(2019, 1, 1); var end = start.AddMonths(1).AddDays(-1); var days = data.GetDays(start, end); Assert.AreEqual(31, days.Count()); }
public void CalendarDataSource_CreateTempDays_Returns7() { // Jan 2019 // how many records do we need for display purposes. var cds = new CalendarDataSource(); var days = cds.CreateTempDays(); Assert.AreEqual(7, days.Count()); // cds.mapDaysToDisplay(); }
public void CalendarDaysNumOfDaysSince1() { var cds = new CalendarDataSource(); var startDate = new DateTime(2019, 01, 01); var days = cds.NumOfDaysSince(DayOfWeek.Monday, startDate); Assert.AreEqual(1, days); var pp = cds.MapDaysToDisplay(); var data = cds.MappedDataSource; }
public override void ViewDidLoad () { base.ViewDidLoad (); this.tableViewDataSource = new TableViewDataSource (this); this.TableView = new UITableView (new RectangleF ()); this.TableView.AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleTopMargin; this.TableView.RegisterClassForCellReuse (typeof(UITableViewCell), new NSString("cell")); this.TableView.DataSource = this.tableViewDataSource; this.View.AddSubview (this.TableView); NSCalendar calendar = new NSCalendar (NSCalendarType.Gregorian); calendar.FirstWeekDay = 2; NSDateComponents components = new NSDateComponents (); components.Year = -10; NSDate minDate = calendar.DateByAddingComponents (components, NSDate.Now, (NSCalendarOptions)0); components.Year = 10; NSDate maxDate = calendar.DateByAddingComponents (components, NSDate.Now, (NSCalendarOptions)0); this.calendarDelegate = new CalendarDelegate (this); this.calendarDataSource = new CalendarDataSource (this); this.CalendarView = new TKCalendar (new RectangleF()); this.CalendarView.AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight; this.CalendarView.Calendar = calendar; this.CalendarView.Delegate = calendarDelegate; this.CalendarView.DataSource = calendarDataSource; this.CalendarView.MinDate = minDate; this.CalendarView.MaxDate = maxDate; this.CalendarView.AllowPinchZoom = true; TKCalendarMonthPresenter presenter = (TKCalendarMonthPresenter)this.CalendarView.Presenter; presenter.Style.TitleCellHeight = 40; presenter.HeaderIsSticky = true; if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad) { presenter.WeekNumbersHidden = true; this.CalendarView.Theme = new TKCalendarIPadTheme (); presenter.Update (true); } else { presenter.WeekNumbersHidden = false; } this.View.AddSubview (this.CalendarView); }
protected void SaveButton_Click(object sender, EventArgs e) { //extract data and save (format: type-id-color:id-type-color) string[] sources = CalendarList.Text.Split(':'); CalendarSource.Clear(); foreach(string source in sources){ string[] parts = source.Split('-'); // only process correctly formatted sources if (parts.Length < 2) continue; CalendarDataSource c = new CalendarDataSource(); long sourceid = 0; if (long.TryParse(parts[1], out sourceid) && sourceid > 0) { c.defaultId = sourceid; string sourcetype = parts[0] + "Calendar"; c.sourceType = (SourceType)Enum.Parse(typeof(SourceType), sourcetype); try { c.backColor = (EventColor)Enum.Parse(typeof(EventColor), parts[2]); } catch (Exception ex) { c.backColor = EventColor.AutoSelect; string _error = ex.Message; } CalendarSource.Add(c); } } _host.SaveWidgetDataMembers(); calendar.DataSource.Clear(); foreach (CalendarDataSource cds in CalendarSource) { calendar.DataSource.Add(cds); } calendar.Fill(); ViewSet.SetActiveView(View); }
private void CreateControlHierarchy(bool useDataSource) { ClearChildViewState(); IEnumerable dataSource = null; int count = -1; if (useDataSource == false) { // ViewState must have a non-null value for ItemCount because this is checked // by CreateChildControls. count = -1;// remove cached items count (int)ViewState["ItemCount"]; if (count != -1) dataSource = new CalendarDataSource(count); } else { dataSource = DataSourceHelper.GetResolvedDataSource (DataSource, DataMember); } Controls.Clear(); //if(Items!=null) // Items.Clear(); //this.EnsureChildControls(); // Bind Holidays // Step 1. Bind Calendar Holiday Sources if(this.HolidayDataSource!=null) { IEnumerable dsCollection = DataSourceHelper.GetResolvedDataSource(this.HolidayDataSource,this.HolidayDataMember); if(dsCollection!=null) { this.Holidays.Clear(); if(this.HolidayDataDateField==String.Empty) throw new ArgumentNullException("HolidayExceptionDateField"); foreach(object dataItem in dsCollection) { DateTime holTime = DateTime.Parse(DataBinder.Eval(dataItem,this.HolidayDataDateField,null)); string name = ""; if (HolidayDataTextField != String.Empty) name = DataBinder.GetPropertyValue(dataItem, HolidayDataTextField, null); this.Holidays.Add(new Holiday(holTime, name)); } } } // Bind Owners // Step 2. Bind Calendar Owner Sources if(this.OwnerDataSource!=null) { IEnumerable dsCollection = DataSourceHelper.GetResolvedDataSource(this.OwnerDataSource,this.OwnerDataMember); if(dsCollection!=null) { this.Owners.Clear(); if(this.OwnerDataTextField==String.Empty) throw new ArgumentNullException("OwnerExceptionDataTextField"); if(this.OwnerDataValueField==String.Empty) throw new ArgumentNullException("OwnerExceptionDataValueField"); foreach(object dataItem in dsCollection) { string text = DataBinder.GetPropertyValue(dataItem, OwnerDataTextField, null); object Value = DataBinder.GetPropertyValue(dataItem, OwnerDataValueField, null); this.Owners.Add(new Owner(Value, text)); } } } if (dataSource != null && useDataSource) { int index = 0; if(Items != null) Items.Clear(); count = 0; foreach (object dataItem in dataSource) { CalendarItem item = null; item = CreateItem(index, useDataSource, dataItem); count++; index++; } } else { count = 0; //CalendarItemCollection items = (CalendarItemCollection)Items.Clone(); //Items.Clear(); //_Items = items; foreach (CalendarItem item in Items) { item.Initialize(); if(useDataSource) item.DataBind(); Controls.Add(item); count++; } } if (useDataSource) { // Save the number of items contained for use in round trips. ViewState["ItemCount"] = ((dataSource != null) ? count : -1); } }
public override void ViewDidLoad() { base.ViewDidLoad (); this.calendarDataSource = new CalendarDataSource (this); this.CalendarView = new TKCalendar (this.View.Bounds); this.CalendarView.AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight; this.CalendarView.DataSource = this.calendarDataSource; this.View.AddSubview (this.CalendarView); TKCalendarMonthPresenter presenter = (TKCalendarMonthPresenter)this.CalendarView.Presenter; if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad) { presenter.InlineEventsViewMode = TKCalendarInlineEventsViewMode.Popover; } else { presenter.InlineEventsViewMode = TKCalendarInlineEventsViewMode.Inline; } presenter.InlineEventsView = new MyInlineEventsView (); presenter.InlineEventsView.MaxHeight = 140; presenter.InlineEventsView.FixedHeight = false; }