Example #1
0
        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;
        }
Example #2
0
		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;
        }
Example #9
0
		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);
		}
Example #10
0
    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);
    }
Example #11
0
        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);
            }
        }
Example #12
0
        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;
        }