示例#1
1
		public override UITableViewCell GetCell(UITableView tv)
		{
			RectangleF frame;
			if (datePicker == null)
			{
				label = new UILabel
				{
					Text = Caption
				};
				label.SizeToFit();
				frame = label.Frame;
				frame.X = 15;
				frame.Y = 5;
				label.Frame = frame;

				datePicker = CreatePicker();
				
			}
			if(datePicker.Date != DateValue)
				datePicker.Date = DateValue;

			frame = datePicker.Frame;
			frame.Y = frame.X = 0;
			datePicker.Frame = frame;
			var cell = tv.DequeueReusableCell("datePicker") ?? new UITableViewCell(UITableViewCellStyle.Default, "datePicker") { Accessory = UITableViewCellAccessory.None };
			cell.ContentView.Add(label);
			if(cell.ContentView != datePicker.Superview)
				cell.ContentView.Add(datePicker);
			
			return cell;
		}
示例#2
0
		void Initialize ()
		{
			Title = Locale.GetText ("Reservierung");
			
			ServiceAgent.Current.ServiceClient.CreateReservationByObjectCompleted += this.HandleReservationCompleted;
			/*
			_hud = new LoadingHUDView (){ 
			//HudBackgroundColor =  Resources.Colors.BackgroundHUD,
				ShowRoundedRectangle = true
			};	
			*/
			_reservationDatePicker = new UIDatePicker ();
			_reservationDatePicker.Locale = NSLocale.CurrentLocale;
			_reservationDatePicker.TimeZone = NSTimeZone.FromAbbreviation ("GMT"); //NSTimeZone.LocalTimeZone;
			_reservationDatePicker.ValueChanged += delegate {
				this.txtDate.Text = _reservationDatePicker.Date.ToDateTime().ToLongDateTimeString();
			};
			
			var seatsModel = new SeatsPickerModel (MAX_SEATS);
			_seatsPicker = new UIPickerView (){
				Model = seatsModel,
				ShowSelectionIndicator = true,
			};
			seatsModel.ValueChanged += delegate(object sender, EventArgs<int> e) {
				txtSeats.Text = e.Value.ToString ();
			};
			_seatsPicker.Frame = new RectangleF (_seatsPicker.Frame.X, _seatsPicker.Frame.Y, _seatsPicker.Frame.Width, 80f);
			
		}
	public override void ViewDidLoad ()
		{
			base.ViewDidLoad ();

			UIDatePicker datePicker = new UIDatePicker ();
			datePicker.Mode = UIDatePickerMode.Date;
			datePicker.BackgroundColor = UIColor.White;

			datePicker.MinimumDate = DateTime.Today.AddDays(-7);
			datePicker.MaximumDate = DateTime.Today.AddDays(7);

			UIToolbar toolbar = new UIToolbar();
			toolbar.BarStyle = UIBarStyle.Default;
			toolbar.Translucent = true;
			toolbar.SizeToFit();

			UIBarButtonItem doneButton = new UIBarButtonItem("Done", UIBarButtonItemStyle.Done,
				(s, e) => {
					DateTime dateTime = DateTime.SpecifyKind(datePicker.Date, DateTimeKind.Unspecified);
					this.textField.Text = dateTime.ToString("MM-dd-yyyy");
					this.textField.ResignFirstResponder();
				});
			toolbar.SetItems(new UIBarButtonItem[]{doneButton}, true);

			this.textField.InputAccessoryView = toolbar;
			
			textField.InputView = datePicker;
		}
		public void Include (UIDatePicker date)
		{
			date.Date = date.Date.AddSeconds (1);
			date.ValueChanged += (sender, args) => {
				date.Date = (Foundation.NSDate)DateTime.MaxValue;
			};
		}
 protected override object GetValueFrom(UIDatePicker view)
 {
     var components = NSCalendar.CurrentCalendar.Components(
         NSCalendarUnit.Hour | NSCalendarUnit.Minute | NSCalendarUnit.Second,
         view.Date);
     return new TimeSpan((int)components.Hour, (int)components.Minute, (int)components.Second);
 }
            public SettingsTableSource(UITableViewController controller, string cellID)
            {
                this.cellID = cellID;
                this.controller = controller;

                // Set up the NSDateFormatter
                this.dateFormatter = new NSDateFormatter();
                this.dateFormatter.DateStyle = NSDateFormatterStyle.None;
                this.dateFormatter.TimeStyle = NSDateFormatterStyle.Short;

                // Set up the UIDatePicker
                this.timePicker = new UIDatePicker();
                timePicker.Mode = UIDatePickerMode.Time;
                timePicker.Date = NSDate.Now;
                timePicker.Hidden = true;
                this.timePickerIsShowing = false;
                this.dayPickerDay = 1;
                this.dayPickerUnit = "Days";

                // Set up the UIPickerView
                this.dayPicker = new UIPickerView();
                this.dayPicker.DataSource = new DayPickerSource();
                this.dayPicker.Delegate = new DayPickerDelegate(this);
                this.dayPicker.Hidden = true;
                this.dayPickerIsShowing = false;
            }
		void ReleaseDesignerOutlets ()
		{
			if (datePicker != null) {
				datePicker.Dispose ();
				datePicker = null;
			}
		}
		public virtual UIDatePicker CreatePicker ()
		{
			var picker = new UIDatePicker (RectangleF.Empty){
				AutoresizingMask = UIViewAutoresizing.FlexibleWidth,
				Mode = UIDatePickerMode.DateAndTime,
				Date = DateValue
			};
			return picker;
		}
 public void CreateDatePicker()
 {
     datePickerView = new UIDatePicker (RectangleF.Empty) {
         AutoresizingMask = UIViewAutoresizing.FlexibleWidth,
         Mode = UIDatePickerMode.Date,
         Hidden = true
     };
     datePickerView.Frame = PickerFrameWithSize (datePickerView.SizeThatFits (SizeF.Empty));
     View.AddSubview (datePickerView);
 }
示例#10
0
		/// <summary>
		/// Initializes a new instance of the <see cref="XamDialogs.DHDatePickerDialog"/> class.
		/// </summary>
		/// <param name="mode">Mode.</param>
		public XamDatePickerDialog (UIDatePickerMode mode) 
			: base(XamDialogType.DatePicker)
		{
			mDatePicker = new UIDatePicker (CGRect.Empty);
			mDatePicker.Mode = mode;
			mDatePicker.TimeZone = NSTimeZone.LocalTimeZone;
			mDatePicker.Calendar = NSCalendar.CurrentCalendar;

			mDatePicker.ValueChanged += OnValueChanged;
		}
 public void CreateDatePicker()
 {
     datePickerView = new UIDatePicker (CGRect.Empty) {
         AutoresizingMask = UIViewAutoresizing.FlexibleWidth,
         Mode = UIDatePickerMode.Date,
         BackgroundColor = backgroundColor,
         Hidden = true
     };
     datePickerView.Frame = PickerFrameWithSize (datePickerView.SizeThatFits (CGSize.Empty));
     View.AddSubview (datePickerView);
 }
		void ReleaseDesignerOutlets ()
		{
			if (ButtonSchedule != null) {
				ButtonSchedule.Dispose ();
				ButtonSchedule = null;
			}
			if (DatePickerDate != null) {
				DatePickerDate.Dispose ();
				DatePickerDate = null;
			}
		}
		protected override void Dispose (bool disposing)
		{
			base.Dispose (disposing);
			if (disposing){
				fmt.Dispose ();
				fmt = null;
				if (datePicker != null){
					datePicker.Dispose ();
					datePicker = null;
				}
			}
		}
示例#14
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            View.SetStyleClass("sample-background");

            _datePicker = new UIDatePicker();

            _datePicker.SetStyleId("sample-date");

            View.AddSubview(_datePicker);
        }
		//========================================================================================================================================
		//  PUBLIC METHODS
		//========================================================================================================================================
		//========================================================================================================================================
		//  PRIVATE METHODS
		//========================================================================================================================================
		private void initCell()
		{
			this._datePicker 		= new UIDatePicker ();
			this._datePicker.Mode 	= UIDatePickerMode.DateAndTime;
			this._datePicker.ValueChanged += (object sender, EventArgs e) => {
				DateUpdateArgs dua = new DateUpdateArgs();
				Foundation.NSDateFormatter Dformatter = new Foundation.NSDateFormatter();
				Dformatter.DateFormat = "MMM dd', 'YYYY'         'HH:mm";
				dua.Date = Dformatter.ToString(this._datePicker.Date);
				this.didUpdateDatePicker(sender, dua);
			};
			this.AddSubview (_datePicker);
		}
        void DateChooser()
        {
            UIDatePicker datePicker = new UIDatePicker();
            datePicker.ValueChanged += (object sender, EventArgs e) =>
            {
                dateTimePicker1.Text = datePicker.Date.ToString();
            };

            dateTimePicker1.InputView = datePicker;
            dateTimePicker1.InputAccessoryView = datePickerDismissalView(datePicker,dateTimePicker1);

            return;
        }
		void ReleaseDesignerOutlets ()
		{
			if (btnSaveData2 != null) {
				btnSaveData2.Dispose ();
				btnSaveData2 = null;
			}
			if (DataController != null) {
				DataController.Dispose ();
				DataController = null;
			}
			if (DatePicker1 != null) {
				DatePicker1.Dispose ();
				DatePicker1 = null;
			}
		}
示例#18
0
        public UIDateField(RectangleF frame) : base(frame)
        {
            this.dateFormat = "D";

            this.picker = new UIDatePicker();
            this.picker.Mode = UIDatePickerMode.Date;
            this.picker.TimeZone = NSTimeZone.FromAbbreviation("GMT");
            this.picker.ValueChanged += this.PickerValueChanged;
            
            this.label = new UILabel(this.Bounds);
            this.label.AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleLeftMargin;
            this.label.BackgroundColor = UIColor.Clear;
            this.label.UserInteractionEnabled = false;
            this.AddSubview(this.label);
            
            this.Date = DateTime.Today;
        }
示例#19
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            var textView = new UITextField(new CGRect(10, 90, 300, 30));
            Add(textView);
            var datePicker = new UIDatePicker();
            datePicker.Mode = UIDatePickerMode.Date;
            textView.InputView = datePicker;
            var label = new UILabel(new CGRect(10, 120, 300, 30));
            Add(label);

            var set = this.CreateBindingSet<DateTimeView, DateTimeViewModel>();
            set.Bind(datePicker).To(vm => vm.Property);
            set.Bind(textView).To("Format('{0:dd MMM yyyy}', Property)");
            set.Bind(label).To("Format('{0:dd MMM yyyy}', Property)");
            set.Apply();
        }
		protected override UIViewController MakeViewController()
		{
			this.datePicker = new UIDatePicker();
			this.datePicker.Mode = UIDatePickerMode.Date;
			this.datePicker.Date = (NSDate)DateTime.SpecifyKind(initialDate, DateTimeKind.Local);

			var pickerViewController = new UIViewController();
			pickerViewController.Title = "Date";
			pickerViewController.NavigationItem.LeftBarButtonItem = new UIBarButtonItem(UIBarButtonSystemItem.Cancel, (sender, e) => Cancel());
			pickerViewController.NavigationItem.RightBarButtonItem = new UIBarButtonItem(UIBarButtonSystemItem.Done, (sender, e) => Done());
			pickerViewController.View = this.datePicker;

			var navigationController = new UINavigationController();
			navigationController.PreferredContentSize = this.datePicker.IntrinsicContentSize;
			navigationController.PushViewController(pickerViewController, animated: false);

			return navigationController;
		}
示例#21
0
            public override bool FinishedLaunching(UIApplication app, NSDictionary options)
            {
                window = new UIWindow (UIScreen.MainScreen.Bounds);
                var vc = new UIViewController ();
                dp = new UIDatePicker ();
                dp.Mode = UIDatePickerMode.Date;
                dp.Mode = UIDatePickerMode.DateAndTime;
                dp.Mode = UIDatePickerMode.Time;
                dp.ValueChanged += delegate {
                    Console.WriteLine (dp.Date.ToString ());
                };
                vc.View.AddSubview (dp);

                window.AddSubview (vc.View);
                window.MakeKeyAndVisible ();

                return true;
            }
示例#22
0
		public override void UpdateCell(UITableViewCell cell, NSIndexPath indexPath)
		{
			base.UpdateCell(cell, indexPath);

			cell.Accessory = UITableViewCellAccessory.None;
			cell.TextLabel.Text = Caption;

			DatePicker = CreatePicker();
			var view = new UIView(DatePicker.Bounds) { BackgroundColor = UIColor.Black };
			view.AddSubview(DatePicker);
		
			Control = DatePicker;

			InputView.InputView = view;
			InputView.InputAccessoryView = new UIDatePickerToolbar(this) { };

			if (cell.DetailTextLabel != null)
				cell.DetailTextLabel.Text = FormatDate(DatePicker.Date.ToDateTime());
		}
        public DatePickerPopover(UIView owner)
        {
            this.Owner = owner;
            this.datePicker = new UIDatePicker();
            this.datePicker.Frame = new RectangleF(0, 44, 320, 216);

            var popoverContent = new UIViewController(); //ViewController
            var popoverView = new UIView
            {
                BackgroundColor = UIColor.Black
            };   //view

            popoverView.AddSubview(this.DatePicker);

            popoverContent.View = popoverView;
            popoverController = new UIPopoverController(popoverContent);
            popoverController.Delegate=this;

            popoverController.SetPopoverContentSize(new SizeF(320, 264),  false);
        }
		public override UIBarButtonItem[] CreateToolbarItems()
		{
			var caption = "Today";

			_DatePicker = FocusableView.Control as UIDatePicker;
			if(_DatePicker != null)
			{
				if (_DatePicker.Mode == UIDatePickerMode.Time)
					caption = "Now";
			}

			var baseButtons = base.CreateToolbarItems();
			
			_TodayButton = new UIBarButtonItem(caption, UIBarButtonItemStyle.Bordered, Today);
			
			var buttonList = baseButtons.ToList();
			buttonList.Insert(2, _TodayButton);
			
			return buttonList.ToArray();
		}
        public UIDateTextField(IntPtr handle)
            : base(handle)
        {
            datePicker = new UIDatePicker();

            dateFormatter = new NSDateFormatter();
            dateFormatter.DateStyle = NSDateFormatterStyle.Long;

            // Set up the date picker
            datePicker.Mode = UIDatePickerMode.Date;
            datePicker.MinimumDate = DateTime.Today.AddMonths (-2);
            datePicker.MaximumDate = DateTime.Today;

            datePicker.ValueChanged += (s, e) => {
                this.Text = dateFormatter.ToString((s as UIDatePicker).Date);
                this._currentDate = DateTime.SpecifyKind((s as UIDatePicker).Date, DateTimeKind.Unspecified);
            };

            // Setup the dateToolbar
            UIToolbar dateToolbar = new UIToolbar();
            dateToolbar.BarStyle = UIBarStyle.Black;
            dateToolbar.Translucent = true;
            dateToolbar.SizeToFit();

            // Create a 'done' button for the dateToolbar
            UIBarButtonItem dateDoneButton = new UIBarButtonItem("Done", UIBarButtonItemStyle.Done, (s, e) => {
                this.ResignFirstResponder();
            });

            // Create flexible space
            UIBarButtonItem dateFlex = new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace);

            // Add button and dateFlexible space to the dateToolbar
            dateToolbar.SetItems(new UIBarButtonItem[]{dateFlex, dateDoneButton}, true);

            this.InputView = datePicker;

            this.InputAccessoryView = dateToolbar;
        }
	public ActionSheetDatePickerCustom (UIView owner)
	{
		picker = new UIDatePicker (CGRect.Empty);

		// save our uiview owner
		this._owner = owner;
              
		// create + configure the action sheet
		_actionSheet = new UIActionSheet () { Style = UIActionSheetStyle.BlackTranslucent };
		_actionSheet.Clicked += (s, e) => {
			Console.WriteLine ("Clicked on item {0}", e.ButtonIndex);
		};
                
		// configure the title label
		titleLabel = new UILabel (new CGRect (0, 0, _actionSheet.Frame.Width, 10));
		titleLabel.BackgroundColor = UIColor.Clear;
		titleLabel.TextColor = UIColor.Black;
		titleLabel.Font = UIFont.BoldSystemFontOfSize (18);

		// Add the toolbar
		_toolbar = new UIToolbar (new CGRect (0, 0, _actionSheet.Frame.Width, 10));
		_toolbar.BarStyle = UIBarStyle.Default;
		_toolbar.Translucent = true;

		// Add the done button
		_doneButton = new UIBarButtonItem ("Gereed", UIBarButtonItemStyle.Done, null);
                
		_toolbar.Items = new UIBarButtonItem[] {
			new UIBarButtonItem (UIBarButtonSystemItem.FlexibleSpace, null, null),
			_doneButton
		};
                
		_toolbar.SizeToFit ();
               
		_actionSheet.AddSubview (picker);
		_actionSheet.Add (_toolbar);
		_actionSheet.AddSubview (titleLabel);
	}
示例#27
0
        public DatePickerView()
        {
            Frame=new RectangleF (0f, 0f, 100f*Device.screenWidthP,260f);

            toolbar = new UIToolbar(RectangleF.Empty);
            toolbar.BarStyle = UIBarStyle.Black;
            toolbar.Translucent = true;
            toolbar.UserInteractionEnabled = true;
            toolbar.SizeToFit();

            cancelBtn = new UIBarButtonItem(UIBarButtonSystemItem.Cancel, delegate
                {
                    if(cancelBtnClick!=null)
                    {
                        cancelBtnClick(this,EventArgs.Empty);
                    }
                });
            flexibleSpaceBtn = new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace, null);
            doneBtn = new UIBarButtonItem(UIBarButtonSystemItem.Done, delegate
                {
                    if(doneBtnClick!=null)
                    {
                        doneBtnClick(this,EventArgs.Empty);
                    }
                });
            itemsBtn = new UIBarButtonItem[] { cancelBtn, flexibleSpaceBtn, doneBtn };
            toolbar.SetItems(itemsBtn, true);
            Add (toolbar);

            datePicker = new UIDatePicker(new RectangleF(0f,44f,100f*Device.screenWidthP,216f));
            datePicker.Mode = UIDatePickerMode.Date;
            datePicker.MaximumDate = NSDate.Now;
            datePicker.TimeZone = NSTimeZone.LocalTimeZone;
            datePicker.UserInteractionEnabled = true;
            datePicker.BackgroundColor = UIColor.White;
            Add (datePicker);
        }
        private async Task ShowDatePopup()
        {
            var dateTimeAlertController = new UIAlertController();

            var datePicker = new UIDatePicker();

            datePicker.Date = _selectedDate;
            datePicker.Mode = UIDatePickerMode.Date;
            datePicker.TranslatesAutoresizingMaskIntoConstraints = false;
            datePicker.MinimumDate = (NSDate)DateTime.Today.AddYears(-1);
            datePicker.MaximumDate = (NSDate)DateTime.Today.AddYears(1);

            var rootView = dateTimeAlertController.View;

            rootView.AddSubview(datePicker);
            rootView.AddConstraints(datePicker.WithSameTop(rootView),
                                    datePicker.AtBottomOf(rootView, 100f),
                                    datePicker.WithSameLeft(rootView),
                                    datePicker.WithSameRight(rootView));

            dateTimeAlertController.AddAction(UIAlertAction.Create(ConstantsHelper.Ok, UIAlertActionStyle.Default, action =>
            {
                _selectedDate     = datePicker.Date;
                var dateFormatter = new NSDateFormatter {
                    DateFormat = "dd/MM/yyyy"
                };
                _currentDateField.Text = dateFormatter.StringFor(_selectedDate);

                var timeFormatter = new NSDateFormatter {
                    DateFormat = "HH:mm"
                };
                _currentTimeField.Text = timeFormatter.StringFor(_selectedDate);
            }));
            dateTimeAlertController.AddAction(UIAlertAction.Create(ConstantsHelper.Cancel, UIAlertActionStyle.Cancel, null));
            await PresentViewControllerAsync(dateTimeAlertController, true);
        }
示例#29
0
        private protected override void OnLoaded()
        {
            base.OnLoaded();

            _picker = this.FindSubviewsOfType <UIDatePicker>().FirstOrDefault();

            if (_picker == null)
            {
                this.Log().DebugIfEnabled(() => $"No {nameof(UIDatePicker)} was found in the visual hierarchy.");
                return;
            }

            // The time zone must be the same as DatePickerSelector
            // otherwise, if a DatePicker and a TimePicker are present
            // with 2 different time zones, they will interfer one with the other
            // and result in weird behaviors (like decrementing the year when a month changes).
            _picker.TimeZone = NSTimeZone.LocalTimeZone;
            _picker.Calendar = new NSCalendar(NSCalendarType.Gregorian);
            _picker.Mode     = UIDatePickerMode.Time;

            if (UIDevice.CurrentDevice.CheckSystemVersion(14, 0))
            {
                _picker.PreferredDatePickerStyle = UIDatePickerStyle.Wheels;
            }

            _picker.ValueChanged += OnValueChanged;

            var parent = _picker.FindFirstParent <FrameworkElement>();

            //Removing the date picker and adding it is what enables the lines to appear. Seems to be a side effect of adding it as a view.
            if (parent != null)
            {
                parent.RemoveChild(_picker);
                parent.AddSubview(_picker);
            }
        }
 EventHandler DatePickerPopUp(UIButton btnLabel)
 {
     return((sender, e) =>
     {
         var swithView = new UIDatePicker
         {
             Mode = UIDatePickerMode.Date,
             Frame = new CGRect(10, 5, 250, 160)
         };
         var alert = UIAlertController.Create("\n\n\n", "\n\n\n", UIAlertControllerStyle.Alert);
         alert.Add(swithView);
         alert.AddAction(UIAlertAction.Create("Cancelar", UIAlertActionStyle.Cancel, (actionCancel) =>
         {
             MetricsManager.TrackEvent("CancelDatePicker");
         }));
         alert.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, (actionOK) =>
         {
             var date = (DateTime)swithView.Date;
             btnLabel.SetTitle(date.ToString("d"), UIControlState.Normal);
         }));
         alert.View.TintColor = UIColor.FromRGB(10, 88, 90);
         UiView.PresentViewController(alert, true, null);
     });
 }
示例#31
0
        public UIViewDatePicker(UIView owner)
        {
            // save our uiview owner
            this.owner = owner;
            DatePicker = new UIDatePicker();

            titleLabel = new UILabel {
                BackgroundColor = UIColor.Clear,
                TextColor       = UIColor.LightTextColor,
                Font            = UIFont.BoldSystemFontOfSize(18),
            };

            doneButton = UIButton.FromType(UIButtonType.RoundedRect);
            doneButton.SetTitle("done", UIControlState.Normal);
            doneButton.TouchUpInside += (sender, e) => {
                Hide(true);
            };

            datePickerView = new UIView {
                DatePicker,
                titleLabel,
                doneButton
            };
        }
示例#32
0
            protected override void Dispose(bool disposing)
            {
#if false
                if (timePicker != null)
                {
                    timePicker.Dispose();
                    timePicker = null;
                }

                if (editTime != null)
                {
                    editTime.Dispose();
                    editTime = null;
                }
#endif

                if (cancel != null)
                {
                    cancel.Dispose();
                    cancel = null;
                }

                if (done != null)
                {
                    done.Dispose();
                    done = null;
                }

                if (picker != null)
                {
                    picker.Dispose();
                    picker = null;
                }

                base.Dispose(disposing);
            }
示例#33
0
            public DatePickerController(DateTime date)
            {
                Title = "Pick a Date";

                View = picker = new UIDatePicker(new RectangleF(PointF.Empty, DatePickerSize))
                {
                    AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight,
                    Mode             = UIDatePickerMode.Date,
                    Date             = date,
                };

                cancel = new UIBarButtonItem(UIBarButtonSystemItem.Cancel);
                NavigationItem.LeftBarButtonItem = cancel;
                cancel.Clicked += (sender, e) => {
                    Popover.Dismiss(true);
                };

                //editTime = new UIBarButtonItem ("Time", UIBarButtonItemStyle.Plain, OnEditClicked);
                //NavigationItem.RightBarButtonItem = editTime;

                done = new UIBarButtonItem(UIBarButtonSystemItem.Done);
                NavigationItem.RightBarButtonItem = done;
                done.Clicked += OnDoneClicked;
            }
示例#34
0
		public UIViewDatePicker (UIView owner)
		{
			// save our uiview owner
			this.owner = owner;
			DatePicker = new UIDatePicker ();

			titleLabel = new UILabel {
				BackgroundColor = UIColor.Clear,
				TextColor = UIColor.LightTextColor,
				Font = UIFont.BoldSystemFontOfSize (18),
			};

			doneButton = UIButton.FromType (UIButtonType.RoundedRect);
			doneButton.SetTitle ("done", UIControlState.Normal);
			doneButton.TouchUpInside += (sender, e) => {
				Hide (true);
			};

			datePickerView = new UIView {
				DatePicker,
				titleLabel,
				doneButton
			};
		}
        private protected override void OnLoaded()
        {
            base.OnLoaded();

            _picker = this.FindSubviewsOfType <UIDatePicker>().FirstOrDefault();

            if (_picker == null)
            {
                this.Log().DebugIfEnabled(() => $"No {nameof(UIDatePicker)} was found in the visual hierarchy.");
                return;
            }

            // The time zone must be the same as DatePickerSelector
            // otherwise, if a DatePicker and a TimePicker are present
            // with 2 different time zones, they will interfer one with the other
            // and result in weird behaviors (like decrementing the year when a month changes).
            _picker.TimeZone = NSTimeZone.LocalTimeZone;
            _picker.Calendar = new NSCalendar(NSCalendarType.Gregorian);
            _picker.Mode     = UIDatePickerMode.Time;

            UpdatePickerStyle();
            SetPickerTime(Time.RoundToNextMinuteInterval(MinuteIncrement));
            SetPickerClockIdentifier(ClockIdentifier);
            SaveInitialTime();
            _picker.ValueChanged    += OnValueChanged;
            _picker.EditingDidBegin += OnEditingDidBegin;

            var parent = _picker.FindFirstParent <FrameworkElement>();

            //Removing the date picker and adding it is what enables the lines to appear. Seems to be a side effect of adding it as a view.
            if (parent != null)
            {
                parent.RemoveChild(_picker);
                parent.AddSubview(_picker);
            }
        }
示例#36
0
        private protected override void OnLoaded()
        {
            base.OnLoaded();

            _picker = this.FindSubviewsOfType <UIDatePicker>().FirstOrDefault();
            if (_picker == null)
            {
                if (this.Log().IsEnabled(LogLevel.Error))
                {
                    this.Log().Error($"No {nameof(UIDatePicker)} was found in the visual hierarchy.");
                }

                return;
            }

            _picker.Mode     = UIDatePickerMode.Date;
            _picker.TimeZone = NSTimeZone.LocalTimeZone;
            _picker.Calendar = new NSCalendar(NSCalendarType.Gregorian);

            UpdatePickerStyle();

            UpdatePickerValue(Date, animated: false);

            _picker.ValueChanged += OnPickerValueChanged;

            //Removing the date picker and adding it is what enables the lines to appear. Seems to be a side effect of adding it as a view.
            var parent = _picker.FindFirstParent <FrameworkElement>();

            if (parent != null)
            {
                parent.RemoveChild(_picker);
                parent.AddSubview(_picker);
            }

            UpdateMinMaxYears();
        }
 public void Include(UIDatePicker date)
 {
     date.Date          = date.Date.AddSeconds(1);
     date.ValueChanged += (sender, args) => { date.Date = new Foundation.NSDate(); };
 }
        private void BuildSections()
        {
            var headerLabel = new UILabel (new RectangleF (10, 10, 370, 40)) {
                Font = UIFont.BoldSystemFontOfSize (20),
                BackgroundColor = ColorHelper.GetGPPurple (),
                TextAlignment = UITextAlignment.Center,
                TextColor = UIColor.White,
                Text = "Post Note"
            };
            var view = new UIViewBordered ();
            view.Frame = new RectangleF (10, 10, 370, 40);
            view.Add (headerLabel);
            var topSection = new Section (view);

            Root.Add (topSection);

            string name = "";
            if (matter != null) {
                name = matter.matterName;
            }
            var sec = new Section (name);
            //
            addBusySection ();
            var tarSec = new Section ();
            if (tariffList != null && tariffList.Count > 0) {
                btnTar = new StyledStringElement ("Select Activity Code");
                btnTar.TextColor = ColorHelper.GetGPLightPurple ();
                btnTar.Alignment = UITextAlignment.Center;
                btnTar.Accessory = UITableViewCellAccessory.DisclosureIndicator;
                btnTar.Tapped += delegate {
                    if (tariffList == null) {

                    } else {
                        string[] btns = new string[tariffList.Count];
                        for (int i = 0; i < tariffList.Count; i++) {
                            btns [i] = tariffList [i].name;
                        }
                        actionSheet = new UIActionSheet ("Activity Codes", null, "Cancel", null, btns) {
                            Style = UIActionSheetStyle.Default
                        };

                        actionSheet.Clicked += delegate (object sender, UIButtonEventArgs args) {
                            if (args.ButtonIndex == tariffList.Count) {
                                //ignored - cancelled
                            } else {
                                narration.Value = tariffList [args.ButtonIndex].narration;
                                selectedTariff = tariffList [args.ButtonIndex];
                                BuildInterface ();
                            }

                        };

                        actionSheet.ShowInView (View);
                    }

                };
                tarSec.Add (btnTar);
            }
            //
            var narrSec = new Section ("Note Narration");

            if (selectedTariff == null) {
                narration = new EntryElement ("Narration", "Narration", null);
            } else {
                narrSec = new Section (selectedTariff.name);
                narration = new EntryElement ("Narration", "Narration", selectedTariff.narration);
            }
            narration.KeyboardType = UIKeyboardType.Default;
            narrSec.Add (narration);
            //
            picker = new UIDatePicker ();
            //picker.Frame = new RectangleF (10f, 10f, 320f, 320f);
            picker.Mode = UIDatePickerMode.Date;
            picker.Date = DateTime.Now;

            var pickerSection = new Section (picker);

            Root.Add (sec);
            Root.Add (tarSec);
            Root.Add (narrSec);
            Root.Add (pickerSection);
            BuildButtons ();
        }
示例#39
0
		public virtual UIDatePicker CreatePicker()
		{
			var picker = new UIDatePicker(RectangleF.Empty)
			{
				AutoresizingMask = UIViewAutoresizing.FlexibleWidth,
				Mode = UIDatePickerMode.DateAndTime,
				Date = DateValue
			};
			picker.ValueChanged += (sender, args) =>
			{
				var dp = sender as UIDatePicker;
				if (dp.Date != DateValue)
					DateValue = dp.Date;
			};
			return picker;
		}
 public void Include(UIDatePicker date)
 {
     date.Date          = date.Date.AddSeconds(1);
     date.ValueChanged += (sender, args) => { date.Date = DateTime.MaxValue; };
 }
示例#41
0
        /// <summary>
        /// Called when [element changed].
        /// </summary>
        /// <param name="e">The e.</param>
        protected override void OnElementChanged(ElementChangedEventArgs <ExtendedTimePicker> e)
        {
            base.OnElementChanged(e);
            if (e.OldElement != null)
            {
                // todo: handle this scenario properly
            }
            if (e.NewElement != null)
            {
                if (Control == null)
                {
                    var entry = new NoCaretField {
                        BorderStyle = UITextBorderStyle.RoundedRect
                    };

                    entry.Started += this.OnStarted;

                    entry.Ended += this.OnEnded;

                    this._picker = new UIDatePicker
                    {
                        Mode     = UIDatePickerMode.Time,
                        TimeZone = new NSTimeZone("CST")
                    };

                    nfloat width = UIScreen.MainScreen.Bounds.Width;

                    var uIToolbar = new UIToolbar(new CGRect(0, 0, width, 44))
                    {
                        BarStyle    = UIBarStyle.Default,
                        Translucent = true
                    };

                    var uIBarButtonItem = new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace);

                    var uIBarButtonItem2 = new UIBarButtonItem(
                        UIBarButtonSystemItem.Done,
                        delegate
                    {
                        entry.ResignFirstResponder();
                    });

                    uIToolbar.SetItems(new[] { uIBarButtonItem, uIBarButtonItem2 }, false);

                    if (Device.Idiom == TargetIdiom.Phone)
                    {
                        entry.InputView          = this._picker;
                        entry.InputAccessoryView = uIToolbar;
                    }
                    else
                    {
                        entry.InputView          = new UIView(CGRect.Empty);
                        entry.InputAccessoryView = new UIView(CGRect.Empty);
                    }

                    this._picker.ValueChanged += this.HandleValueChanged;

                    SetNativeControl(entry);
                }
            }
            UpdateTime();
            SetBorder();
            UpdateTimeConstraints();
        }
示例#42
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            //Starting off by initilizing all of the components of the view.

            var stackView = new UIStackView
            {
                Axis         = UILayoutConstraintAxis.Vertical,
                Alignment    = UIStackViewAlignment.Fill,
                Distribution = UIStackViewDistribution.EqualSpacing,
                Spacing      = 25,
                TranslatesAutoresizingMaskIntoConstraints = false
            };

            var scrollView = new UIScrollView(new CGRect(0, 0, View.Frame.Width, View.Frame.Height));

            var NameField = new UITextField
            {
                Frame       = new CGRect(25, 20, 35, 15),
                Placeholder = "Event Name"
            };
            var AddressField = new UITextField
            {
                Frame       = new CGRect(25, 30, 35, 15),
                Placeholder = "Address"
            };
            var CityFiled = new UITextField
            {
                Frame       = new CGRect(25, 40, 35, 15),
                Placeholder = "City"
            };
            var StateField = new UITextField
            {
                Frame       = new CGRect(25, 30, 35, 15),
                Placeholder = "State"
            };
            var CountryField = new UITextField
            {
                Frame       = new CGRect(25, 30, 35, 15),
                Placeholder = "Country"
            };
            var ZipField = new UITextField
            {
                Frame       = new CGRect(25, 50, 35, 15),
                Placeholder = "ZipCode"
            };
            var DescField = new UITextField
            {
                Frame       = new CGRect(25, 50, 35, 15),
                Placeholder = "Event Description"
            };
            var SubmitButton = new UIButton(UIButtonType.System)
            {
                Frame = new CGRect(25, 90, 300, 30)
            };
            var GetImage = new UIButton(UIButtonType.System)
            {
                Frame = new CGRect(25, 60, 300, 30)
            };
            var StateLabel = new UILabel()
            {
                Text          = "Press the button to choose between Public or Private.",
                TextAlignment = UITextAlignment.Center
            };
            var isPublicButton = new UIButton(UIButtonType.System)
            {
                Frame = new CGRect(25, 90, 300, 30)
            };


            UIDatePicker DatePicker = new UIDatePicker(new CGRect(
                                                           UIScreen.MainScreen.Bounds.X - UIScreen.MainScreen.Bounds.Width,
                                                           UIScreen.MainScreen.Bounds.Height - 230,
                                                           UIScreen.MainScreen.Bounds.Width,
                                                           180));
            var calendar = new NSCalendar(NSCalendarType.Gregorian);

            calendar.TimeZone = NSTimeZone.LocalTimeZone;
            var currentDate = NSDate.Now;
            var components  = new NSDateComponents();

            components.Year = -60;
            NSDate minDate = calendar.DateByAddingComponents(components, NSDate.Now, NSCalendarOptions.None);

            DatePicker.MinimumDate = currentDate;
            DatePicker.Mode        = UIDatePickerMode.DateAndTime;

            SubmitButton.SetTitle("Submit Event", UIControlState.Normal);
            GetImage.SetTitle("Pick An Image", UIControlState.Normal);
            isPublicButton.SetTitle("Private Event", UIControlState.Normal);


            //Start putting the components together to build the view.

            stackView.AddArrangedSubview(NameField);
            stackView.AddArrangedSubview(AddressField);
            stackView.AddArrangedSubview(CityFiled);
            stackView.AddArrangedSubview(StateField);
            stackView.AddArrangedSubview(CountryField);
            stackView.AddArrangedSubview(ZipField);
            stackView.AddArrangedSubview(DescField);
            stackView.AddArrangedSubview(DatePicker);
            stackView.AddArrangedSubview(StateLabel);
            stackView.AddArrangedSubview(isPublicButton);
            stackView.AddArrangedSubview(GetImage);
            stackView.AddArrangedSubview(SubmitButton);

            scrollView.AddSubview(stackView);

            View.Add(scrollView);

            //Finializing the layout.

            scrollView.ContentSize = stackView.Frame.Size;
            scrollView.AddConstraint(stackView.TopAnchor.ConstraintEqualTo(scrollView.TopAnchor));
            scrollView.AddConstraint(stackView.BottomAnchor.ConstraintEqualTo(scrollView.BottomAnchor));
            scrollView.AddConstraint(stackView.LeftAnchor.ConstraintEqualTo(scrollView.LeftAnchor));
            scrollView.AddConstraint(stackView.RightAnchor.ConstraintEqualTo(scrollView.RightAnchor));

            View.AddConstraint(scrollView.TopAnchor.ConstraintEqualTo(View.TopAnchor));
            View.AddConstraint(scrollView.BottomAnchor.ConstraintEqualTo(View.BottomAnchor));
            View.AddConstraint(scrollView.LeftAnchor.ConstraintEqualTo(View.LeftAnchor));
            View.AddConstraint(scrollView.RightAnchor.ConstraintEqualTo(View.RightAnchor));
            View.BackgroundColor = UIColor.White;
            var g = new UITapGestureRecognizer(() => View.EndEditing(true));

            View.AddGestureRecognizer(g);


            //Button function #1: submitting the event and presenting the submission to the user.
            SubmitButton.TouchUpInside += async(object sender, EventArgs e) =>
            {
                //Populate the Event model.
                userEvent.Address   = AddressField.Text;
                userEvent.EventName = NameField.Text;
                userEvent.City      = CityFiled.Text;
                userEvent.State     = StateField.Text;
                userEvent.Country   = CountryField.Text;
                userEvent.ZipCode   = int.Parse(ZipField.Text);
                DateTime.SpecifyKind((DateTime)DatePicker.Date, DateTimeKind.Utc).ToLocalTime();
                userEvent.DateOfEvent = (DateTime)DatePicker.Date;
                userEvent.isPublic    = isPublic;
                var    geoCoder     = new CLGeocoder();
                var    location     = new CLLocation();
                string worldAddress = userEvent.Address + ", "
                                      + userEvent.City + ", "
                                      + userEvent.State + ", "
                                      + userEvent.Country + ", "
                                      + userEvent.ZipCode.ToString();
                var placemarks = geoCoder.GeocodeAddressAsync(worldAddress);
                await placemarks.ContinueWith((addresses) =>
                {
                    foreach (var address in addresses.Result)
                    {
                        location = address.Location;
                    }
                });

                userEvent.Lat         = location.Coordinate.Latitude;
                userEvent.Long        = location.Coordinate.Longitude;
                userEvent.Description = DescField.Text;

                EventService ES = new EventService(_client);
                if (userImage != null)
                {
                    Event EventLocation = await ES.CreateNewEvent(userEvent, userImage);

                    var ShowEvent = new SubmittedEvent(EventLocation, _client, _locationmanager);
                    this.NavigationController.PopViewController(true);
                    this.NavigationController.PushViewController(ShowEvent, true);
                }
                else
                {
                    Event EventLocation = await ES.CreateNewEvent(userEvent);

                    var ShowEvent = new SubmittedEvent(EventLocation, _client, _locationmanager);
                    this.NavigationController.PopViewController(true);
                    this.NavigationController.PushViewController(ShowEvent, true);
                }
            };

            //Button function #2: opening Image Picker
            GetImage.TouchUpInside += (object sender, EventArgs e) =>
            {
                ShowSelectPicPopup();
            };

            //Button function #3: Public/Private toggle function
            isPublicButton.TouchUpInside += (object sender, EventArgs e) =>
            {
                if (isPublic == false)
                {
                    isPublic = true;
                    isPublicButton.SetTitle("Public Event", UIControlState.Normal);
                }
                else
                {
                    isPublic = false;
                    isPublicButton.SetTitle("Private Event", UIControlState.Normal);
                }
            };
        }
示例#43
0
 private protected override void OnUnloaded()
 {
     base.OnUnloaded();
     _picker.ValueChanged -= OnPickerValueChanged;
     _picker = null;
 }
示例#44
0
 partial void QueryDatePicker_ValueChanged(UIDatePicker sender)
 {
     ClearLabels();
 }
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            this.ModalPresentationStyle = UIModalPresentationStyle.Custom;
            this.TransitioningDelegate  = this;
            this.View.BackgroundColor   = UIColor.Clear;


            // Date Picker
            var datePicker = new UIDatePicker
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Date            = this.SelectedDateTime.ToNSDate(),
                BackgroundColor = BackgroundColor,
                Mode            = Mode,
                MinuteInterval  = MinuteInterval
            };

            if (MinimumDateTime != null)
            {
                datePicker.MinimumDate = MinimumDateTime.Value.ToNSDate();
            }

            if (MaximumDateTime != null)
            {
                datePicker.MaximumDate = MaximumDateTime.Value.ToNSDate();
            }

            dimmedView = new UIView(this.View.Bounds)
            {
                AutoresizingMask   = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight,
                TintAdjustmentMode = UIViewTintAdjustmentMode.Dimmed,
                BackgroundColor    = UIColor.Black
            };


            var dismissButton = new UIButton
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                UserInteractionEnabled = true
            };

            dismissButton.TouchUpInside += (s, e) =>
            {
                Cancel?.Invoke(this);
            };
            this.View.AddSubview(dismissButton);

            var containerView = new UIView
            {
                ClipsToBounds   = true,
                BackgroundColor = UIColor.White,
                TranslatesAutoresizingMaskIntoConstraints = false
            };

            containerView.Layer.CornerRadius = 5.0f;
            this.View.AddSubview(containerView);

            containerView.AddSubview(datePicker);

            var buttonContainerView = new UIView
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                BackgroundColor = UIColor.White
            };

            buttonContainerView.Layer.CornerRadius = 5.0f;
            this.View.AddSubview(buttonContainerView);

            var buttonDividerView = new UIView
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                BackgroundColor = UIColor.FromRGBA(205 / 255, 205 / 255, 205 / 255, 1)
            };

            this.View.AddSubview(buttonDividerView);

            var cancelButton = new UIButton();

            cancelButton.TranslatesAutoresizingMaskIntoConstraints = false;
            cancelButton.SetTitle(CancelText, UIControlState.Normal);
            cancelButton.SetTitleColor(UIColor.Red, UIControlState.Normal);

            cancelButton.TitleLabel.Font = UIFont.SystemFontOfSize(FontSize);
            cancelButton.TouchUpInside  += (s, e) =>
            {
                Cancel?.Invoke(this);
            };
            buttonContainerView.AddSubview(cancelButton);

            var button = new UIButton(UIButtonType.System);

            button.TranslatesAutoresizingMaskIntoConstraints = false;
            button.TitleLabel.Font = UIFont.BoldSystemFontOfSize(FontSize);
            button.SetTitle(this.OkText, UIControlState.Normal);
            button.TouchUpInside += (s, e) =>
            {
                Ok?.Invoke(this);
            };
            buttonContainerView.AddSubview(button);

            var views = NSDictionary.FromObjectsAndKeys(
                new NSObject[] { dismissButton, containerView, datePicker, buttonContainerView, buttonDividerView, cancelButton, button },
                new NSObject[] {
                new NSString("DismissButton"), new NSString("DatePickerContainerView"), new NSString("datePicker"),
                new NSString("ButtonContainerView"), new NSString("ButtonDividerView"), new NSString("CancelButton"),
                new NSString("SelectButton")
            }
                );

            this.View.AddConstraints(NSLayoutConstraint.FromVisualFormat("H:|[CancelButton][ButtonDividerView(0.5)][SelectButton(CancelButton)]|", 0, null, views));

            this.View.AddConstraints(NSLayoutConstraint.FromVisualFormat("V:|[CancelButton]|", 0, null, views));
            this.View.AddConstraints(NSLayoutConstraint.FromVisualFormat("V:|[ButtonDividerView]|", 0, null, views));
            this.View.AddConstraints(NSLayoutConstraint.FromVisualFormat("V:|[SelectButton]|", 0, null, views));

            this.View.AddConstraints(NSLayoutConstraint.FromVisualFormat("H:|[datePicker]|", 0, null, views));
            this.View.AddConstraints(NSLayoutConstraint.FromVisualFormat("V:|[datePicker]|", 0, null, views));

            this.View.AddConstraints(NSLayoutConstraint.FromVisualFormat("H:|[DismissButton]|", 0, null, views));
            this.View.AddConstraints(NSLayoutConstraint.FromVisualFormat("H:|-5-[DatePickerContainerView]-5-|", 0, null, views));
            this.View.AddConstraints(NSLayoutConstraint.FromVisualFormat("H:|-5-[ButtonContainerView]-5-|", 0, null, views));

            this.View.AddConstraints(NSLayoutConstraint.FromVisualFormat("V:|[DismissButton][DatePickerContainerView]-10-[ButtonContainerView(40)]-5-|", 0, null, views));
        }
示例#46
0
 /// <summary>
 /// Includes the specified uiDatePicker.
 /// </summary>
 /// <param name="uiDatePicker">The uiDatePicker.</param>
 public void Include(UIDatePicker uiDatePicker)
 {
     uiDatePicker.Date          = uiDatePicker.Date.AddSeconds(1);
     uiDatePicker.ValueChanged += (sender, args) => { uiDatePicker.Date = NSDate.DistantFuture; };
 }
示例#47
0
        public override void LoadView()
        {
            var scrollView = new UIScrollView().Apply(Style.Screen);

            scrollView.Add(wrapper = new UIView()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
            });

            wrapper.Add(startStopView = new StartStopView()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                StartTime = model.StartTime,
                StopTime  = model.StopTime,
            }.Apply(BindStartStopView));
            startStopView.SelectedChanged += OnStartStopViewSelectedChanged;

            wrapper.Add(datePicker = new UIDatePicker()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Hidden = DatePickerHidden,
                Alpha  = 0,
            }.Apply(Style.EditTimeEntry.DatePicker).Apply(BindDatePicker));
            datePicker.ValueChanged += OnDatePickerValueChanged;

            wrapper.Add(projectButton = new ProjectClientTaskButton()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
            }.Apply(BindProjectButton));
            projectButton.TouchUpInside += OnProjectButtonTouchUpInside;

            wrapper.Add(descriptionTextField = new TextField()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                AttributedPlaceholder = new NSAttributedString(
                    "EditEntryDesciptionTimerHint".Tr(),
                    foregroundColor: Color.Gray
                    ),
                ShouldReturn = (tf) => tf.ResignFirstResponder(),
            }.Apply(Style.EditTimeEntry.DescriptionField).Apply(BindDescriptionField));
            descriptionTextField.EditingChanged += OnDescriptionFieldEditingChanged;
            descriptionTextField.EditingDidEnd  += (s, e) => CommitDescriptionChanges();

            wrapper.Add(tagsButton = new UIButton()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
            }.Apply(Style.EditTimeEntry.TagsButton).Apply(BindTagsButton));
            tagsButton.TouchUpInside += OnTagsButtonTouchUpInside;

            wrapper.Add(billableSwitch = new LabelSwitchView()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Text = "EditEntryBillable".Tr(),
            }.Apply(Style.EditTimeEntry.BillableContainer).Apply(BindBillableSwitch));
            billableSwitch.Label.Apply(Style.EditTimeEntry.BillableLabel);
            billableSwitch.Switch.ValueChanged += OnBillableSwitchValueChanged;

            wrapper.Add(deleteButton = new UIButton()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
            }.Apply(Style.EditTimeEntry.DeleteButton));
            deleteButton.SetTitle("EditEntryDelete".Tr(), UIControlState.Normal);
            deleteButton.TouchUpInside += OnDeleteButtonTouchUpInside;

            wrapper.AddConstraints(VerticalLinearLayout(wrapper));
            scrollView.AddConstraints(
                wrapper.AtTopOf(scrollView),
                wrapper.AtBottomOf(scrollView),
                wrapper.AtLeftOf(scrollView),
                wrapper.AtRightOf(scrollView),
                wrapper.WithSameWidth(scrollView),
                wrapper.Height().GreaterThanOrEqualTo().HeightOf(scrollView).Minus(64f),
                null
                );

            View = scrollView;
        }
示例#48
0
 public static void UpdateFormat(this UIDatePicker picker, IDatePicker datePicker)
 {
     picker.UpdateDate(datePicker);
 }
        protected override void OnElementChanged(ElementChangedEventArgs <DatePicker> e)
        {
            base.OnElementChanged(e);

            if (e.NewElement == null)
            {
                return;
            }

            if (Control == null)
            {
                var entry = CreateNativeControl();

                entry.EditingDidBegin += OnStarted;
                entry.EditingDidEnd   += OnEnded;

                _picker = new UIDatePicker {
                    Mode = UIDatePickerMode.Date, TimeZone = new NSTimeZone("UTC")
                };

                if (Forms.IsiOS14OrNewer)
                {
                    _picker.PreferredDatePickerStyle = UIKit.UIDatePickerStyle.Wheels;
                }

                _picker.ValueChanged += HandleValueChanged;

                var width   = UIScreen.MainScreen.Bounds.Width;
                var toolbar = new UIToolbar(new RectangleF(0, 0, width, 44))
                {
                    BarStyle = UIBarStyle.Default, Translucent = true
                };
                var spacer     = new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace);
                var doneButton = new UIBarButtonItem(UIBarButtonSystemItem.Done, (o, a) =>
                {
                    UpdateElementDate();
                    entry.ResignFirstResponder();
                });

                toolbar.SetItems(new[] { spacer, doneButton }, false);

                entry.InputView          = _picker;
                entry.InputAccessoryView = toolbar;

                entry.InputView.AutoresizingMask          = UIViewAutoresizing.FlexibleHeight;
                entry.InputAccessoryView.AutoresizingMask = UIViewAutoresizing.FlexibleHeight;

                entry.InputAssistantItem.LeadingBarButtonGroups  = null;
                entry.InputAssistantItem.TrailingBarButtonGroups = null;

                _defaultTextColor = entry.TextColor;

                _useLegacyColorManagement = e.NewElement.UseLegacyColorManagement();

                entry.AccessibilityTraits = UIAccessibilityTrait.Button;

                SetNativeControl(entry);
            }

            UpdateDateFromModel(false);
            UpdateFont();
            UpdateMaximumDate();
            UpdateMinimumDate();
            UpdateTextColor();
            UpdateCharacterSpacing();
            UpdateFlowDirection();
        }
示例#50
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            var bindingSet = this.CreateBindingSet <AddSessionView, AddSessionViewModel>();

            bindingSet = BindLoader(bindingSet);

            var sessionDateTextField = new TFloatingPicker(new CGRect())
            {
                Placeholder = "When?"
            };

            this.View.Add(sessionDateTextField);
            bindingSet.Bind(sessionDateTextField).To("Format('{0:d MMM yyyy}', SessionDate)").Apply();
            bindingSet.Bind(sessionDateTextField).For("ValidationError").To(vm => vm.ValidationErrors[nameof(AddSessionViewModel.SessionDate)]).Apply();

            /* picker */
            /* ******************************************************* */
            var sessionDatePicker = new UIDatePicker();

            sessionDatePicker.Mode = UIDatePickerMode.Date;

            var sessionDateToolbar = new UIToolbar(new CGRect(0.0f, 0.0f, sessionDatePicker.Frame.Size.Width, 44.0f));

            sessionDateTextField.InputAccessoryView = sessionDateToolbar;
            sessionDateTextField.InputView          = sessionDatePicker;

            sessionDateToolbar.Items = new[]
            {
                new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace),
                new UIBarButtonItem(UIBarButtonSystemItem.Done, delegate
                {
                    sessionDateTextField.ResignFirstResponder();
                })
            };

            bindingSet.Bind(sessionDatePicker).To(vm => vm.SessionDate).Apply();
            /* ******************************************************* */

            var gameTextField = new TFloatingTextField(new CGRect())
            {
                Placeholder = "What?",
                Editable    = false
            };

            this.View.Add(gameTextField);
            bindingSet.Bind(gameTextField).To(vm => vm.SelectedGame).Apply();
            bindingSet.Bind(gameTextField).For("ValidationError").To(vm => vm.ValidationErrors[nameof(AddSessionViewModel.SelectedGame)]).Apply();

            /* picker */
            /* ******************************************************* */
            var gamePicker          = new UIPickerView();
            var gamePickerViewModel = new MvxPickerViewModel(gamePicker);

            gamePicker.Model = gamePickerViewModel;

            var gamePickerToolbar = new UIToolbar(new CGRect(0.0f, 0.0f, gamePicker.Frame.Size.Width, 44.0f));

            gameTextField.InputAccessoryView = gamePickerToolbar;
            gameTextField.InputView          = gamePicker;

            gamePickerToolbar.Items = new[]
            {
                new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace),
                new UIBarButtonItem(UIBarButtonSystemItem.Done, delegate
                {
                    gameTextField.ResignFirstResponder();
                })
            };

            bindingSet.Bind(gamePickerViewModel).For(p => p.SelectedItem).To(vm => vm.SelectedGame).Apply();
            bindingSet.Bind(gamePickerViewModel).For(p => p.ItemsSource).To(vm => vm.GamesCollection).Apply();
            /* ******************************************************* */

            var whereTextField = new TFloatingTextField(new CGRect())
            {
                Placeholder = "Where?"
            };

            this.View.Add(whereTextField);
            bindingSet.Bind(whereTextField).To(vm => vm.Venue).Apply();
            bindingSet.Bind(whereTextField).For("ValidationError").To(vm => vm.ValidationErrors[nameof(AddSessionViewModel.Venue)]).Apply();

            var playerListing = new TTableView
            {
                AllowsSelection = false
            };

            this.View.Add(playerListing);

            var tableSource = new PlayerTableSource(playerListing);

            bindingSet.Bind(tableSource).To(vm => vm.PlayerCollection).Apply();

            var saveButton = new TButtonView("Save");

            this.View.Add(saveButton);
            bindingSet.Bind(saveButton).To(vm => vm.SaveCommand).Apply();

            var gradientTopView = new TGradientView(ColorPalette.Carnelian, ColorPalette.Carnelian.ColorWithAlpha(0));

            this.View.Add(gradientTopView);

            var gradientBottomView = new TGradientView(ColorPalette.Carnelian.ColorWithAlpha(0), ColorPalette.Carnelian);

            this.View.Add(gradientBottomView);

            this.View.AddConstraints(new FluentLayout[] {
                sessionDateTextField.AtTopOf(this.View, Constants.MARGIN),
                sessionDateTextField.AtLeftOf(this.View, Constants.MARGIN),
                sessionDateTextField.WithSameWidth(this.View).Minus(Constants.MARGIN * 2),

                gameTextField.Below(sessionDateTextField, Constants.MARGIN),
                gameTextField.AtLeftOf(this.View, Constants.MARGIN),
                gameTextField.WithSameWidth(this.View).Minus(Constants.MARGIN * 2),

                whereTextField.Below(gameTextField, Constants.MARGIN),
                whereTextField.AtLeftOf(this.View, Constants.MARGIN),
                whereTextField.WithSameWidth(this.View).Minus(Constants.MARGIN * 2),

                playerListing.Below(whereTextField, Constants.MARGIN),
                playerListing.AtLeftOf(this.View, Constants.MARGIN),
                playerListing.WithSameWidth(this.View).Minus(Constants.MARGIN * 2),
                playerListing.Above(saveButton, Constants.MARGIN),

                saveButton.AtBottomOf(this.View, Constants.MARGIN),
                saveButton.Height().EqualTo(Constants.BUTTON_HEIGHT),
                saveButton.AtLeftOf(this.View, Constants.MARGIN),
                saveButton.WithSameWidth(this.View).Minus(Constants.MARGIN * 2),

                gradientTopView.Below(whereTextField, Constants.MARGIN),
                gradientTopView.AtLeftOf(this.View, Constants.MARGIN),
                gradientTopView.WithSameWidth(this.View).Minus(Constants.MARGIN * 2),
                gradientTopView.Height().EqualTo(10f),

                gradientBottomView.Above(saveButton, Constants.MARGIN),
                gradientBottomView.AtLeftOf(this.View, Constants.MARGIN),
                gradientBottomView.WithSameWidth(this.View).Minus(Constants.MARGIN * 2),
                gradientBottomView.Height().EqualTo(10f),
            });

            playerListing.Source = tableSource;
            playerListing.ReloadData();
        }
示例#51
0
        private Task <IDialogAnswer <DateTime> > ShowDateTimeDialog(string caption, UIDatePickerMode mode, DateTime current,
                                                                    IDialogButton positive, IDialogButton negative)
        {
            var tcs     = new TaskCompletionSource <IDialogAnswer <DateTime> >();
            var version = new Version(UIDevice.CurrentDevice.SystemVersion);

            if (version.Major >= 7)
            {
                var picker = new DatePicker();
                picker.Title = caption;
                picker.NativeDatePicker.Mode = mode;
                picker.NativeDatePicker.Date = current;
                picker.DoneTitle             = positive.Caption;
                picker.CancelTitle           = negative.Caption;
                picker.Click += (sender, e) =>
                {
                    if (tcs.Task.Status < TaskStatus.RanToCompletion)
                    {
                        NSDate   dateTime = (sender as DatePicker).NativeDatePicker.Date;
                        DateTime result   = dateTime != null
                            ? System.DateTime.SpecifyKind(dateTime, DateTimeKind.Utc).ToLocalTime()
                            : System.DateTime.MinValue;

                        if (e.ButtonIndex == 0)
                        {
                            tcs.SetResult(new DialogAnswer <DateTime>(true, result));
                        }
                        else if (e.ButtonIndex == 1)
                        {
                            tcs.SetResult(new DialogAnswer <DateTime>(false, result));
                        }
                    }
                };

                picker.Show(_context.MainController.View,
                            (ScreenController)_context.MainController.VisibleViewController);
            }
            else
            {
                var alertView = new UIAlertView(caption, "", null, positive.Caption, negative.Caption);
                alertView.Show();
                _alertViews.Add(alertView);

                var datePicker = new UIDatePicker();
                datePicker.Frame = new RectangleF(10, alertView.Bounds.Size.Height, 270, 150);
                datePicker.Mode  = UIDatePickerMode.Date;
                datePicker.Date  = current;
                alertView.AddSubview(datePicker);

                var timePicker = new UIDatePicker();
                timePicker.Frame = new RectangleF(10, alertView.Bounds.Size.Height + 150 + 20, 270, 150);
                timePicker.Mode  = UIDatePickerMode.Time;
                timePicker.Date  = current;
                alertView.AddSubview(timePicker);

                alertView.Clicked += (sender, e) =>
                {
                    DateTime date   = System.DateTime.SpecifyKind(datePicker.Date, DateTimeKind.Unspecified);
                    DateTime time   = System.DateTime.SpecifyKind(timePicker.Date, DateTimeKind.Utc).ToLocalTime();
                    var      result = new DateTime(date.Year, date.Month, date.Day, time.Hour, time.Minute, time.Second);
                    if (e.ButtonIndex == 0)
                    {
                        tcs.SetResult(new DialogAnswer <DateTime>(true, result));
                    }
                    else if (e.ButtonIndex == 1)
                    {
                        tcs.SetResult(new DialogAnswer <DateTime>(false, result));
                    }

                    var av = (UIAlertView)sender;
                    _alertViews.Remove(av);
                    av.Dispose();
                };

                alertView.Bounds = new RectangleF(0, 0, 290, alertView.Bounds.Size.Height + 150 + 150 + 20 + 30);
            }
            return(tcs.Task);
        }
 public static string BindTime(this UIDatePicker uiDatePicker)
 => MvxIosPropertyBinding.UIDatePicker_Time;
        public override UITableViewCell GetCell(Cell item,
                                                UITableViewCell reusableCell, UITableView tv)
        {
            var         cell           = base.GetCell(item, reusableCell, tv);
            var         datepickerCell = (DatePickerEntryCell)item;
            UITextField textField      = null;

            if (cell != null)
            {
                textField = (UITextField)cell.ContentView.Subviews[0];
            }

            // Default datepicker display attributes
            var mode          = UIDatePickerMode.Date;
            var displayFormat = "d";
            var date          = NSDate.Now;
            var isLocalTime   = false;

            // Update datepicker based on Cell's properties
            if (datepickerCell != null)
            {
                // Kind must be Universal or Local to cast to NSDate
                if (datepickerCell.Date.Kind == DateTimeKind.Unspecified)
                {
                    var local = new DateTime(datepickerCell.Date.Ticks,
                                             DateTimeKind.Local);

                    date = (NSDate)local;
                }
                else
                {
                    date = (NSDate)datepickerCell.Date;
                }

                isLocalTime =
                    datepickerCell.Date.Kind == DateTimeKind.Local ||
                    datepickerCell.Date.Kind == DateTimeKind.Unspecified;
            }

            // Create iOS datepicker
            var datepicker = new UIDatePicker
            {
                Mode            = mode,
                BackgroundColor = UIColor.White,
                Date            = date,
                TimeZone        = isLocalTime
                    ? NSTimeZone.LocalTimeZone
                    : new NSTimeZone("UTC")
            };

            // Create a toolbar with a done button that will
            // close the datepicker and set the selected value
            var done = new UIBarButtonItem("Done",
                                           UIBarButtonItemStyle.Done, (s, e) =>
            {
                var pickedDate = (DateTime)datepicker.Date;

                if (isLocalTime)
                {
                    pickedDate = pickedDate.ToLocalTime();
                }

                // Update the value of the UITextField within the Cell
                if (textField != null)
                {
                    textField.Text = pickedDate.ToString(displayFormat);
                    textField.ResignFirstResponder();
                }

                // Update the Date property on the Cell
                if (datepickerCell != null)
                {
                    datepickerCell.Date = pickedDate;
                    datepickerCell.SendCompleted();
                }
            });

            var toolbar = new UIToolbar
            {
                BarStyle    = UIBarStyle.Default,
                Translucent = false
            };

            toolbar.SizeToFit();
            toolbar.SetItems(new[] { done }, true);

            // Set the input view, toolbar and
            // initial value for the Cell's UITextField
            if (textField != null)
            {
                textField.InputView          = datepicker;
                textField.InputAccessoryView = toolbar;

                if (datepickerCell != null)
                {
                    textField.Text = datepickerCell
                                     .Date.ToString(displayFormat);
                }
            }

            return(cell);
        }
 protected override void OnUnloaded()
 {
     base.OnUnloaded();
     _dateChangedSubscription.Disposable = null;
     _picker = null;
 }
 public void Include(UIDatePicker date)
 {
     date.Date = date.Date.AddSeconds(1);
 }
示例#56
0
        /* Creates the container view here: create the dialog, then add the custom content and buttons */
        private UIView createContainerView()
        {
            var screenSize = CountScreenSize();
            var dialogSize = new CGSize(
                300,
                230
                + kDatePickerDialogDefaultButtonHeight
                + kDatePickerDialogDefaultButtonSpacerHeight);

            // For the black background
            Frame = new CGRect(0, 0, screenSize.Width, screenSize.Height);

            // This is the dialog's container; we attach the custom content and the buttons to this one
            var dialogContainer = new UIView(new CGRect((screenSize.Width - dialogSize.Width) / 2, (screenSize.Height - dialogSize.Height) / 2, dialogSize.Width, dialogSize.Height));

            // First, we style the dialog to match the iOS8 UIAlertView >>>
            var gradient = new CAGradientLayer();

            gradient.Frame  = dialogContainer.Bounds;
            gradient.Colors = new[]
            {
                UIColor.FromRGB(218, 218, 218).CGColor,
                UIColor.FromRGB(233, 233, 233).CGColor,
                UIColor.FromRGB(218, 218, 218).CGColor
            };

            var cornerRadius = kDatePickerDialogCornerRadius;

            gradient.CornerRadius = cornerRadius;
            dialogContainer.Layer.InsertSublayer(gradient, 0);

            dialogContainer.Layer.CornerRadius  = cornerRadius;
            dialogContainer.Layer.BorderColor   = UIColor.FromRGB(198, 198, 198).CGColor;
            dialogContainer.Layer.BorderWidth   = 1;
            dialogContainer.Layer.ShadowRadius  = cornerRadius + 5;
            dialogContainer.Layer.ShadowOpacity = 0.1f;
            dialogContainer.Layer.ShadowOffset  = new CGSize(0 - (cornerRadius + 5) / 2, 0 - (cornerRadius + 5) / 2);
            dialogContainer.Layer.ShadowColor   = UIColor.Black.CGColor;
            dialogContainer.Layer.ShadowPath    = UIBezierPath.FromRoundedRect(dialogContainer.Bounds, dialogContainer.Layer.CornerRadius).CGPath;

            // There is a line above the button
            var lineView = new UIView(new CGRect(0, dialogContainer.Bounds.Size.Height - kDatePickerDialogDefaultButtonHeight - kDatePickerDialogDefaultButtonSpacerHeight, dialogContainer.Bounds.Size.Width, kDatePickerDialogDefaultButtonSpacerHeight));

            lineView.BackgroundColor = UIColor.FromRGB(198, 198, 198);
            dialogContainer.AddSubview(lineView);
            // ˆˆˆ
            //Title
            _titleLabel = new UILabel(new CGRect(10, 10, 280, 30));
            _titleLabel.TextAlignment = UITextAlignment.Center;
            _titleLabel.Font          = UIFont.BoldSystemFontOfSize(17);
            _titleLabel.Text          = _title;
            dialogContainer.AddSubview(_titleLabel);


            _datePicker = new UIDatePicker(new CGRect(0, 30, 0, 0));
            _datePicker.AutoresizingMask = UIViewAutoresizing.FlexibleRightMargin;
            _datePicker.Frame            = new CGRect(_datePicker.Frame.Location, new CGSize(300, _datePicker.Frame.Size.Height));
            _datePicker.Mode             = _datePickerMode;
            _datePicker.Date             = (NSDate)_defaultDate;

            if (_maximumDate.HasValue)
            {
                _datePicker.MaximumDate = (NSDate)_maximumDate.Value;
            }

            if (_minimumDate.HasValue)
            {
                _datePicker.MinimumDate = (NSDate)_minimumDate.Value;
            }

            dialogContainer.AddSubview(_datePicker);
            AddButtonsToView(dialogContainer);
            return(dialogContainer);
        }
示例#57
0
        private void createEditor()
        {
            button_cancel    = new UIButton();
            button_save      = new UIButton();
            label_subject    = new UITextView();
            label_location   = new UITextView();
            label_ends       = new UILabel();
            label_starts     = new UILabel();
            button_startDate = new UIButton();
            button_endDate   = new UIButton();
            picker_startDate = new UIDatePicker();
            picker_endDate   = new UIDatePicker();
            done_button      = new UIButton();


            //cancel button
            button_cancel.SetTitle("Cancel", UIControlState.Normal);
            button_cancel.SetTitleColor(UIColor.Blue, UIControlState.Normal);
            button_cancel.HorizontalAlignment = UIControlContentHorizontalAlignment.Center;
            button_cancel.TouchUpInside      += (object sender, EventArgs e) =>
            {
                editor.Hidden   = true;
                schedule.Hidden = false;
                editor.EndEditing(true);
            };

            //save button
            button_save.SetTitle("Save", UIControlState.Normal);
            button_save.SetTitleColor(UIColor.Blue, UIControlState.Normal);
            button_save.HorizontalAlignment = UIControlContentHorizontalAlignment.Center;
            button_save.TouchUpInside      += (object sender, EventArgs e) =>
            {
                if (indexOfAppointment != -1)
                {
                    schedule.Appointments.GetItem <ScheduleAppointment>(nuint.Parse(indexOfAppointment.ToString())).Subject   = (NSString)label_subject.Text;
                    schedule.Appointments.GetItem <ScheduleAppointment>(nuint.Parse(indexOfAppointment.ToString())).Location  = (NSString)label_location.Text;
                    schedule.Appointments.GetItem <ScheduleAppointment>(nuint.Parse(indexOfAppointment.ToString())).StartTime = picker_startDate.Date;
                    schedule.Appointments.GetItem <ScheduleAppointment>(nuint.Parse(indexOfAppointment.ToString())).EndTime   = picker_endDate.Date;
                }
                else
                {
                    ScheduleAppointment appointment = new ScheduleAppointment();
                    appointment.Subject               = (NSString)label_subject.Text;
                    appointment.Location              = (NSString)label_location.Text;
                    appointment.StartTime             = picker_startDate.Date;
                    appointment.EndTime               = picker_endDate.Date;
                    appointment.AppointmentBackground = UIColor.FromRGB(0xA2, 0xC1, 0x39);
                    schedule.Appointments.Add(appointment);
                }
                editor.Hidden   = true;
                schedule.Hidden = false;
                schedule.ReloadData();
                editor.EndEditing(true);
            };

            //subject label
            label_subject.TextColor          = UIColor.Black;
            label_subject.TextAlignment      = UITextAlignment.Left;
            label_subject.Layer.CornerRadius = 8;
            label_subject.Layer.BorderWidth  = 2;
            label_subject.Layer.BorderColor  = UIColor.FromRGB(246, 246, 246).CGColor;


            //location label
            label_location.TextColor          = UIColor.Black;
            label_location.TextAlignment      = UITextAlignment.Left;
            label_location.Layer.CornerRadius = 8;
            label_location.Layer.BorderWidth  = 2;
            label_location.Layer.BorderColor  = UIColor.FromRGB(246, 246, 246).CGColor;

            //starts time

            label_starts.Text      = "Start Time :";
            label_starts.TextColor = UIColor.Black;

            button_startDate.SetTitle("Start time", UIControlState.Normal);
            button_startDate.SetTitleColor(UIColor.Blue, UIControlState.Normal);
            button_startDate.HorizontalAlignment = UIControlContentHorizontalAlignment.Center;
            button_startDate.TouchUpInside      += (object sender, EventArgs e) =>
            {
                picker_startDate.Hidden = false;
                done_button.Hidden      = false;
                label_ends.Hidden       = true;
                button_endDate.Hidden   = true;
                button_startDate.Hidden = true;
                label_starts.Hidden     = true;
                editor.EndEditing(true);
            };

            //end time

            label_ends.Text      = "End Time :";
            label_ends.TextColor = UIColor.Black;


            //end date
            button_endDate.SetTitle("End time", UIControlState.Normal);
            button_endDate.SetTitleColor(UIColor.Blue, UIControlState.Normal);
            button_endDate.HorizontalAlignment = UIControlContentHorizontalAlignment.Center;
            button_endDate.TouchUpInside      += (object sender, EventArgs e) =>
            {
                picker_endDate.Hidden   = false;
                done_button.Hidden      = false;
                label_ends.Hidden       = true;
                button_endDate.Hidden   = true;
                button_startDate.Hidden = true;
                label_starts.Hidden     = true;
                editor.EndEditing(true);
            };

            //date and time pickers
            picker_startDate.Hidden = true;
            picker_endDate.Hidden   = true;

            //done button
            done_button.SetTitle("Done", UIControlState.Normal);
            done_button.SetTitleColor(UIColor.Blue, UIControlState.Normal);
            done_button.HorizontalAlignment = UIControlContentHorizontalAlignment.Right;
            done_button.TouchUpInside      += (object sender, EventArgs e) =>
            {
                picker_startDate.Hidden = true;
                picker_endDate.Hidden   = true;
                done_button.Hidden      = true;
                label_ends.Hidden       = false;
                button_endDate.Hidden   = false;
                button_startDate.Hidden = false;
                label_starts.Hidden     = false;

                String _sDate = DateTime.Parse((picker_startDate.Date.ToString())).ToString();
                button_startDate.SetTitle(_sDate, UIControlState.Normal);

                String _eDate = DateTime.Parse((picker_endDate.Date.ToString())).ToString();
                button_endDate.SetTitle(_eDate, UIControlState.Normal);
                editor.EndEditing(true);
            };

            button_cancel.Frame    = new CGRect(this.Frame.X + 10, this.Frame.Y + 10, 100, 30);
            button_save.Frame      = new CGRect(100, this.Frame.Y + 10, 300, 30);
            label_subject.Frame    = new CGRect(this.Frame.X + 10, this.Frame.Y + 50, 300, 30);
            label_location.Frame   = new CGRect(this.Frame.X + 10, this.Frame.Y + 90, 300, 30);
            label_starts.Frame     = new CGRect(this.Frame.X + 10, this.Frame.Y + 140, 300, 30);
            button_startDate.Frame = new CGRect(this.Frame.X + 10, this.Frame.Y + 180, 300, 30);
            label_ends.Frame       = new CGRect(this.Frame.X + 10, this.Frame.Y + 220, 300, 30);
            button_endDate.Frame   = new CGRect(this.Frame.X + 10, this.Frame.Y + 260, 300, 30);

            picker_startDate.Frame = new CGRect(this.Frame.X + 10, this.Frame.Y + 180, 300, 30);
            picker_endDate.Frame   = new CGRect(100, this.Frame.Y + 180, 300, 30);
            picker_endDate.Frame   = new CGRect(this.Frame.X + 10, this.Frame.Y + 180, 300, 30);
            done_button.Frame      = new CGRect(this.Frame.X + 10, this.Frame.Y + 180, 300, 30);
            done_button.Hidden     = true;

            editor.Add(button_cancel);
            editor.Add(button_save);
            editor.Add(label_subject);
            editor.Add(label_location);
            editor.Add(label_starts);
            editor.Add(button_startDate);
            editor.Add(label_ends);
            editor.Add(button_endDate);
            editor.Add(picker_endDate);
            editor.Add(picker_startDate);
            editor.Add(done_button);
        }
 public static string BindDateTimeOffset(this UIDatePicker self)
 => DatePickerDateTimeOffsetTargetBinding.BindingName;
示例#59
0
 public void Include(UIDatePicker date)
 {
     date.Date          = date.Date.AddSeconds(1);
     date.ValueChanged += (sender, args) => { date.Date = NSDate.DistantFuture; };
 }
示例#60
0
        internal void CreateEditor()
        {
            ButtonCancel        = new UIButton();
            ButtonSave          = new UIButton();
            LabelSubject        = new UITextView();
            LabelLocation       = new UITextView();
            LabelEnds           = new UILabel();
            LabelStarts         = new UILabel();
            ButtonStartDate     = new UIButton();
            ButtonEndDate       = new UIButton();
            StartTimeZoneLabel  = new UILabel();
            EndTimeZoneLabel    = new UILabel();
            StartTimeZoneButton = new UIButton();
            EndTimeZoneButton   = new UIButton();
            PickerStartDate     = new UIDatePicker();
            PickerEndDate       = new UIDatePicker();
            DoneButton          = new UIButton();
            ScrollView          = new UIScrollView();
            StartTimeZonePicker = new UIPickerView();
            EndTimeZonePicker   = new UIPickerView();
            AllDaySwitch        = new UISwitch();
            AllDaylabel         = new UILabel();

            ScrollView.BackgroundColor = UIColor.White;

            LabelSubject.Font        = UIFont.SystemFontOfSize(14);
            LabelLocation.Font       = UIFont.SystemFontOfSize(14);
            LabelStarts.Font         = UIFont.SystemFontOfSize(15);
            LabelEnds.Font           = UIFont.SystemFontOfSize(15);
            StartTimeZoneLabel.Font  = UIFont.SystemFontOfSize(15);
            EndTimeZoneLabel.Font    = UIFont.SystemFontOfSize(15);
            AllDaylabel.Font         = UIFont.SystemFontOfSize(15);
            StartTimeZoneButton.Font = UIFont.SystemFontOfSize(15);
            EndTimeZoneButton.Font   = UIFont.SystemFontOfSize(15);
            ButtonStartDate.Font     = UIFont.SystemFontOfSize(15);
            ButtonEndDate.Font       = UIFont.SystemFontOfSize(15);

            ButtonCancel.BackgroundColor = UIColor.FromRGB(229, 229, 229);
            ButtonCancel.Font            = UIFont.SystemFontOfSize(15);
            ButtonSave.Font                    = UIFont.SystemFontOfSize(15);
            ButtonSave.BackgroundColor         = UIColor.FromRGB(33, 150, 243);
            ButtonCancel.Layer.CornerRadius    = 6;
            ButtonSave.Layer.CornerRadius      = 6;
            ButtonStartDate.Layer.CornerRadius = 6;
            ButtonEndDate.Layer.CornerRadius   = 6;

            StartTimeZoneLabel.Text      = "Start Time Zone";
            StartTimeZoneLabel.TextColor = UIColor.Black;

            EndTimeZoneLabel.Text      = "End Time Zone";
            EndTimeZoneLabel.TextColor = UIColor.Black;

            AllDaylabel.Text      = "All Day";
            AllDaylabel.TextColor = UIColor.Black;

            AllDaySwitch.On            = false;
            AllDaySwitch.OnTintColor   = UIColor.FromRGB(33, 150, 243);
            AllDaySwitch.ValueChanged += AllDaySwitch_ValueChanged;

            StartTimeZoneButton.SetTitle("Default", UIControlState.Normal);
            StartTimeZoneButton.SetTitleColor(UIColor.Black, UIControlState.Normal);
            StartTimeZoneButton.Layer.BorderWidth   = 2;
            StartTimeZoneButton.Layer.CornerRadius  = 4;
            StartTimeZoneButton.Layer.BorderColor   = UIColor.FromRGB(246, 246, 246).CGColor;
            StartTimeZoneButton.HorizontalAlignment = UIControlContentHorizontalAlignment.Center;
            StartTimeZoneButton.TouchUpInside      += (object sender, EventArgs e) =>
            {
                StartTimeZonePicker.Hidden = false;
                DoneButton.Hidden          = false;

                AllDaylabel.Hidden       = true;
                AllDaySwitch.Hidden      = true;
                ButtonCancel.Hidden      = true;
                ButtonSave.Hidden        = true;
                EndTimeZoneLabel.Hidden  = true;
                EndTimeZoneButton.Hidden = true;
                Editor.EndEditing(true);
            };

            EndTimeZoneButton.SetTitle("Default", UIControlState.Normal);
            EndTimeZoneButton.SetTitleColor(UIColor.Black, UIControlState.Normal);
            EndTimeZoneButton.Layer.BorderWidth   = 2;
            EndTimeZoneButton.Layer.CornerRadius  = 4;
            EndTimeZoneButton.Layer.BorderColor   = UIColor.FromRGB(246, 246, 246).CGColor;
            EndTimeZoneButton.HorizontalAlignment = UIControlContentHorizontalAlignment.Center;
            EndTimeZoneButton.TouchUpInside      += (object sender, EventArgs e) =>
            {
                EndTimeZonePicker.Hidden = false;
                DoneButton.Hidden        = false;
                AllDaylabel.Hidden       = true;
                AllDaySwitch.Hidden      = true;
                ButtonCancel.Hidden      = true;
                ButtonSave.Hidden        = true;
                EndTimeZoneLabel.Hidden  = true;
                EndTimeZoneButton.Hidden = true;
                Editor.EndEditing(true);
            };

            //cancel button
            ButtonCancel.SetTitle("Cancel", UIControlState.Normal);
            ButtonCancel.SetTitleColor(UIColor.FromRGB(59, 59, 59), UIControlState.Normal);
            ButtonCancel.TouchUpInside += (object sender, EventArgs e) =>
            {
                Editor.Hidden   = true;
                schedule.Hidden = false;
                Editor.EndEditing(true);
                scheduleViews.HeaderView.Hidden = false;
            };

            //save button
            ButtonSave.SetTitle("Save", UIControlState.Normal);
            ButtonSave.SetTitleColor(UIColor.White, UIControlState.Normal);
            ButtonSave.TouchUpInside += (object sender, EventArgs e) =>
            {
                scheduleViews.HeaderView.Hidden = false;
                if (scheduleViews.IndexOfAppointment != -1)
                {
                    (schedule.ItemsSource as ObservableCollection <ScheduleAppointment>)[int.Parse(scheduleViews.IndexOfAppointment.ToString())].Subject   = (NSString)LabelSubject.Text;
                    (schedule.ItemsSource as ObservableCollection <ScheduleAppointment>)[int.Parse(scheduleViews.IndexOfAppointment.ToString())].Location  = (NSString)LabelLocation.Text;
                    (schedule.ItemsSource as ObservableCollection <ScheduleAppointment>)[int.Parse(scheduleViews.IndexOfAppointment.ToString())].StartTime = PickerStartDate.Date;
                    (schedule.ItemsSource as ObservableCollection <ScheduleAppointment>)[int.Parse(scheduleViews.IndexOfAppointment.ToString())].EndTime   = PickerEndDate.Date;
                    (schedule.ItemsSource as ObservableCollection <ScheduleAppointment>)[int.Parse(scheduleViews.IndexOfAppointment.ToString())].IsAllDay  = AllDaySwitch.On;
                }
                else
                {
                    ScheduleAppointment appointment = new ScheduleAppointment();
                    appointment.Subject               = (NSString)LabelSubject.Text;
                    appointment.Location              = (NSString)LabelLocation.Text;
                    appointment.StartTime             = PickerStartDate.Date;
                    appointment.EndTime               = PickerEndDate.Date;
                    appointment.AppointmentBackground = UIColor.FromRGB(0xA2, 0xC1, 0x39);
                    appointment.IsAllDay              = AllDaySwitch.On;
                    (schedule.ItemsSource as ObservableCollection <ScheduleAppointment>).Add(appointment);
                }

                Editor.Hidden   = true;
                schedule.Hidden = false;
                schedule.ReloadData();
                Editor.EndEditing(true);
            };

            //subject label
            LabelSubject.TextColor          = UIColor.Black;
            LabelSubject.TextAlignment      = UITextAlignment.Left;
            LabelSubject.Layer.CornerRadius = 8;
            LabelSubject.Layer.BorderWidth  = 2;
            LabelSubject.Layer.BorderColor  = UIColor.FromRGB(246, 246, 246).CGColor;

            //location label
            LabelLocation.TextColor          = UIColor.Black;
            LabelLocation.TextAlignment      = UITextAlignment.Left;
            LabelLocation.Layer.CornerRadius = 8;
            LabelLocation.Layer.BorderWidth  = 2;
            LabelLocation.Layer.BorderColor  = UIColor.FromRGB(246, 246, 246).CGColor;

            //starts time
            LabelStarts.Text      = "Start Time";
            LabelStarts.TextColor = UIColor.Black;

            ButtonStartDate.SetTitle("Start time", UIControlState.Normal);
            ButtonStartDate.Layer.BorderWidth  = 2;
            ButtonStartDate.Layer.CornerRadius = 4;
            ButtonStartDate.Layer.BorderColor  = UIColor.FromRGB(246, 246, 246).CGColor;
            ButtonStartDate.SetTitleColor(UIColor.Black, UIControlState.Normal);
            ButtonStartDate.HorizontalAlignment = UIControlContentHorizontalAlignment.Center;
            ButtonStartDate.TouchUpInside      += (object sender, EventArgs e) =>
            {
                PickerStartDate.Hidden = false;
                DoneButton.Hidden      = false;

                AllDaylabel.Hidden       = true;
                AllDaySwitch.Hidden      = true;
                ButtonCancel.Hidden      = true;
                ButtonSave.Hidden        = true;
                EndTimeZoneLabel.Hidden  = true;
                EndTimeZoneButton.Hidden = true;
                Editor.EndEditing(true);
            };

            //end time
            LabelEnds.Text      = "End Time";
            LabelEnds.TextColor = UIColor.Black;

            //end date
            ButtonEndDate.SetTitle("End time", UIControlState.Normal);
            ButtonEndDate.SetTitleColor(UIColor.Black, UIControlState.Normal);
            ButtonEndDate.Layer.BorderWidth   = 2;
            ButtonEndDate.Layer.CornerRadius  = 4;
            ButtonEndDate.Layer.BorderColor   = UIColor.FromRGB(246, 246, 246).CGColor;
            ButtonEndDate.HorizontalAlignment = UIControlContentHorizontalAlignment.Center;
            ButtonEndDate.TouchUpInside      += (object sender, EventArgs e) =>
            {
                PickerEndDate.Hidden     = false;
                DoneButton.Hidden        = false;
                AllDaylabel.Hidden       = true;
                AllDaySwitch.Hidden      = true;
                ButtonCancel.Hidden      = true;
                ButtonSave.Hidden        = true;
                EndTimeZoneLabel.Hidden  = true;
                EndTimeZoneButton.Hidden = true;

                Editor.EndEditing(true);
            };

            //date and time pickers
            PickerStartDate.Hidden     = true;
            PickerEndDate.Hidden       = true;
            StartTimeZonePicker.Hidden = true;
            EndTimeZonePicker.Hidden   = true;
            DoneButton.Hidden          = true;

            //done button
            DoneButton.SetTitle("Done", UIControlState.Normal);
            DoneButton.SetTitleColor(UIColor.Blue, UIControlState.Normal);
            DoneButton.HorizontalAlignment = UIControlContentHorizontalAlignment.Right;
            DoneButton.TouchUpInside      += (object sender, EventArgs e) =>
            {
                PickerStartDate.Hidden     = true;
                PickerEndDate.Hidden       = true;
                StartTimeZonePicker.Hidden = true;
                EndTimeZonePicker.Hidden   = true;
                DoneButton.Hidden          = true;

                LabelEnds.Hidden           = false;
                ButtonEndDate.Hidden       = false;
                ButtonStartDate.Hidden     = false;
                LabelStarts.Hidden         = false;
                EndTimeZoneLabel.Hidden    = false;
                StartTimeZoneLabel.Hidden  = false;
                AllDaylabel.Hidden         = false;
                AllDaySwitch.Hidden        = false;
                StartTimeZoneButton.Hidden = false;
                EndTimeZoneButton.Hidden   = false;
                ButtonCancel.Hidden        = false;
                ButtonSave.Hidden          = false;

                String _sDate = DateTime.Parse(PickerStartDate.Date.ToString()).ToString();
                ButtonStartDate.SetTitle(_sDate, UIControlState.Normal);

                String _eDate = DateTime.Parse(PickerEndDate.Date.ToString()).ToString();
                ButtonEndDate.SetTitle(_eDate, UIControlState.Normal);
                Editor.EndEditing(true);
            };

            SchedulePickerModel model = new SchedulePickerModel(TimeZoneCollection.TimeZoneList);

            model.PickerChanged += (sender, e) =>
            {
                if (e.SelectedValue != "Default" && scheduleViews.SelectedAppointment != null)
                {
                    scheduleViews.SelectedAppointment.StartTimeZone = e.SelectedValue;
                }

                StartTimeZoneButton.SetTitle(e.SelectedValue, UIControlState.Normal);
            };

            SchedulePickerModel model2 = new SchedulePickerModel(TimeZoneCollection.TimeZoneList);

            model2.PickerChanged += (sender, e) =>
            {
                if (e.SelectedValue != "Default" && scheduleViews.SelectedAppointment != null)
                {
                    scheduleViews.SelectedAppointment.EndTimeZone = e.SelectedValue;
                }

                EndTimeZoneButton.SetTitle(e.SelectedValue, UIControlState.Normal);
            };

            StartTimeZonePicker.Model = model;
            EndTimeZonePicker.Model   = model2;
            StartTimeZonePicker.ShowSelectionIndicator = true;
            EndTimeZonePicker.ShowSelectionIndicator   = true;

            ScrollView.Add(LabelSubject);
            ScrollView.Add(LabelLocation);
            ScrollView.Add(LabelStarts);
            ScrollView.Add(ButtonStartDate);
            ScrollView.Add(StartTimeZoneLabel);
            ScrollView.Add(StartTimeZoneButton);
            ScrollView.Add(LabelEnds);
            ScrollView.Add(ButtonEndDate);
            ScrollView.Add(EndTimeZoneLabel);
            ScrollView.Add(EndTimeZoneButton);
            ScrollView.Add(StartTimeZonePicker);
            ScrollView.Add(EndTimeZonePicker);
            ScrollView.Add(PickerEndDate);
            ScrollView.Add(PickerStartDate);
            ScrollView.Add(DoneButton);
            ScrollView.Add(AllDaylabel);
            ScrollView.Add(AllDaySwitch);
            ScrollView.Add(ButtonCancel);
            ScrollView.Add(ButtonSave);

            Editor.Add(ScrollView);
        }