using System; using ElmSharp; using EButton = ElmSharp.Button; namespace Xamarin.Forms.Platform.Tizen.Native { public class DateTimePickerDialog : Dialog { DateTimeSelector _dateTimePicker; EvasObject _parent; /// /// Creates a dialog window. /// public DateTimePickerDialog(EvasObject parent) : base(parent) { _parent = parent; Initialize(); } /// /// Occurs when the date of this dialog has changed. /// public event EventHandler DateTimeChanged; /// /// Gets the contained in this dialog. /// public DateTimeSelector DateTimePicker { get { return _dateTimePicker; } private set { if (_dateTimePicker != value) { ApplyDateTimePicker(value); } } } /// /// Creates date picker in dialog window. /// public void InitializeDatePicker(DateTime date, DateTime minimumDate, DateTime maximumDate) { var datePicker = new DatePicker(this) { Date = date, MinimumDate = minimumDate, MaximumDate = maximumDate }; Content = DateTimePicker = datePicker; } /// /// Creates time picker in dialog window. /// public void InitializeTimePicker(TimeSpan time, string format) { var timePicker = new TimePicker(this) { Time = time, DateTimeFormat = format }; Content = DateTimePicker = timePicker; } void ApplyDateTimePicker(DateTimeSelector dateTimePicker) { _dateTimePicker = dateTimePicker; Content = _dateTimePicker; } void Initialize() { //TODO need to add internationalization support PositiveButton = new EButton(_parent) { Text = "Set" }; PositiveButton.Clicked += (s, e) => { DateTime oldDate = DateTimePicker.DateTime; DateTimeChanged?.Invoke(this, new DateChangedEventArgs(oldDate, DateTimePicker.DateTime)); Hide(); }; //TODO need to add internationalization support NegativeButton = new EButton(_parent) { Text = "Cancel" }; NegativeButton.Clicked += (s, e) => { Hide(); }; BackButtonPressed += (object s, EventArgs e) => { Hide(); }; } } }