public override void Run(Window window) { Conformant conformant = new Conformant(window); conformant.Show(); Background bg = new Background(window); bg.Color = Color.Black; bg.Show(); conformant.SetContent(bg); DateTimeSelector dateTime = new DateTimeSelector(window) { DateTime = DateTime.Today, Style = "time_layout", Format = "%I:%M %p" }; dateTime.Geometry = new Rect(0, 0, window.ScreenSize.Width, window.ScreenSize.Height); dateTime.Show(); dateTime.DateTimeChanged += (object sender, DateChangedEventArgs e) => { Log.Debug($"Old DateTime={e.OldDate}"); Log.Debug($"New DateTime={e.NewDate}"); Log.Debug($"Current DateTime={dateTime.DateTime}"); }; }
public void Should_Use_Custom_Boundaries_for_DateTime_Value_Injection() { //Create an instance of our test class var testInstance = new DateTimeTestClass(); var dateTimeMax = DateTime.UtcNow.AddYears(1); var dateTimeMin = DateTime.UtcNow.AddYears(-1); //Create an instance of our IntSelector and set some custom bounds var selector = new DateTimeSelector().SetMax(() => Faker.Generators.DateTimes.GetDateTime(dateTimeMax, dateTimeMax)) .SetMin(() => Faker.Generators.DateTimes.GetDateTime(dateTimeMin, dateTimeMin)); //Iterate over the test object's properties foreach (var property in testInstance.GetType().GetProperties()) { Assert.IsTrue(selector.CanBind(property), string.Format("should have been able to bind to property {0}", property.Name)); //Inject the value into this property on our test instance class selector.Generate(testInstance, property); //Get the value out of the property var fieldValue = (DateTime)property.GetValue(testInstance, null); Assert.IsNotNull(fieldValue); Assert.AreNotEqual(fieldValue, default(DateTime)); Assert.IsTrue(fieldValue <= dateTimeMax && fieldValue >= dateTimeMin, "Custom range should have worked"); } }
public override void Run(Window window) { Conformant conformant = new Conformant(window); conformant.Show(); Background bg = new Background(window); bg.Color = Color.Black; bg.Show(); conformant.SetContent(bg); DateTimeSelector dateTime = new DateTimeSelector(window) { MinimumDateTime = new DateTime(2015, 1, 1), MaximumDateTime = DateTime.Now, DateTime = DateTime.Now }; dateTime.Geometry = new Rect(0, 0, window.ScreenSize.Width, window.ScreenSize.Height); dateTime.Show(); dateTime.DateTimeChanged += (object sender, DateChangedEventArgs e) => { Log.Debug($"Old DateTime={e.OldDate}"); Log.Debug($"New DateTime={e.NewDate}"); Log.Debug($"Current DateTime={dateTime.DateTime}"); }; Button btn_left = new Button(window) { Style = "popup/circle/left", Text = "Left", Geometry = new Rect(0, 0, 64, 360) }; btn_left.Show(); Button btn_right = new Button(window) { Style = "popup/circle/right", Text = "Right", Geometry = new Rect(window.ScreenSize.Width - 64, 0, 64, 360) }; btn_right.Show(); btn_left.Clicked += (s, e) => { dateTime.DateTime -= new TimeSpan(1, 0, 0, 0, 0); }; btn_right.Clicked += (s, e) => { dateTime.DateTime += new TimeSpan(1, 0, 0, 0, 0); }; }
/// <summary> /// Creates time picker in dialog window. /// </summary> public void InitializeTimePicker(TimeSpan time, string format) { var timePicker = new TimePicker(this) { Time = time, DateTimeFormat = format }; Content = DateTimePicker = timePicker; }
/// <summary> /// Creates date picker in dialog window. /// </summary> public void InitializeDatePicker(DateTime date, DateTime minimumDate, DateTime maximumDate) { var datePicker = new DatePicker(this) { Date = date, MinimumDate = minimumDate, MaximumDate = maximumDate }; Content = DateTimePicker = datePicker; }
public override void Run(Window window) { Background bg = new Background(window); bg.Color = Color.Gray; bg.Move(0, 0); bg.Resize(window.ScreenSize.Width, window.ScreenSize.Height); bg.Show(); DateTimeSelector dateTime = new DateTimeSelector(window) { MinimumDateTime = new DateTime(2015, 1, 1), MaximumDateTime = DateTime.Now, DateTime = DateTime.Now }; Label label1 = new Label(window); Label label2 = new Label(window); Label label3 = new Label(window) { Text = string.Format("Current DateTime={0}", dateTime.DateTime), }; dateTime.DateTimeChanged += (object sender, DateChangedEventArgs e) => { label1.Text = string.Format("Old DateTime={0}", e.OldDate); label2.Text = string.Format("New DateTime={0}", e.NewDate); label3.Text = string.Format("Current DateTime={0}", dateTime.DateTime); }; dateTime.Resize(720, 600); dateTime.Move(0, 300); dateTime.Show(); label1.Resize(600, 100); label1.Move(0, 0); label1.Show(); label2.Resize(600, 100); label2.Move(0, 100); label2.Show(); label3.Resize(600, 100); label3.Move(0, 200); label3.Show(); }
public override void Run(Window window) { Background bg = new Background(window); bg.Color = Color.Gray; bg.Move(0, 0); bg.Resize(window.ScreenSize.Width, window.ScreenSize.Height); bg.Show(); DateTimeSelector dateTime = new DateTimeSelector(window) { DateTime = DateTime.Today, Style = "time_layout", Format = "%d/%b/%Y %I:%M %p" }; Label label1 = new Label(window); Label label2 = new Label(window); Label label3 = new Label(window) { Text = string.Format("Current DateTime={0}", dateTime.DateTime), }; dateTime.DateTimeChanged += (object sender, DateChangedEventArgs e) => { label1.Text = string.Format("Old DateTime={0}", e.OldDate); label2.Text = string.Format("New DateTime={0}", e.NewDate); label3.Text = string.Format("Current DateTime={0}", dateTime.DateTime); }; dateTime.Resize(720, 600); dateTime.Move(0, 300); dateTime.Show(); label1.Resize(600, 100); label1.Move(0, 0); label1.Show(); label2.Resize(600, 100); label2.Move(0, 100); label2.Show(); label3.Resize(600, 100); label3.Move(0, 200); label3.Show(); }
public void DateTime_Selector_Injects_All_DateTime_Values() { var dateTimeSelector = new DateTimeSelector(); var dateTimeTestClass = new DateTimeTestClass(); //Iterate over all of the properties in the fullNameClass object... foreach (var property in dateTimeTestClass.GetType().GetProperties()) { //Inject the value into the property dateTimeSelector.Generate(dateTimeTestClass, property); } //Iterate over all of the properties again foreach (var property in dateTimeTestClass.GetType().GetProperties()) { var fieldValue = (DateTime)property.GetValue(dateTimeTestClass, null); Assert.IsAssignableFrom <DateTime>(fieldValue, "Should be type of DateTime..."); Assert.AreNotEqual(fieldValue, default(DateTime)); } }
public void DateTime_Selector_Injects_All_DateTime_Values() { var dateTimeSelector = new DateTimeSelector(); var dateTimeTestClass = new DateTimeTestClass(); //Iterate over all of the properties in the fullNameClass object... foreach (var property in dateTimeTestClass.GetType().GetProperties()) { //Inject the value into the property dateTimeSelector.Generate(dateTimeTestClass, property); } //Iterate over all of the properties again foreach (var property in dateTimeTestClass.GetType().GetProperties()) { var fieldValue = (DateTime)property.GetValue(dateTimeTestClass, null); Assert.IsAssignableFrom<DateTime>(fieldValue, "Should be type of DateTime..."); Assert.AreNotEqual(fieldValue, default(DateTime)); } }
public DateTimeSelectorAssert(DateTimeSelector dateTimeSelector) : base(dateTimeSelector) { DateTimeSelector = dateTimeSelector; }
public override void Run(Window window) { Conformant conformant = new Conformant(window); conformant.Show(); Box box = new Box(window); box.Show(); Button btn = new Button(window) { AlignmentX = -1, WeightX = 1, Text = "Open" }; btn.Show(); Popup popup = new Popup(window); DateTimeSelector dateTime = new DateTimeSelector(window) { MinimumDateTime = new DateTime(2015, 1, 1), MaximumDateTime = DateTime.Now, DateTime = DateTime.Now }; popup.SetPartContent("default", dateTime, true); popup.Dismissed += (s, e) => { Console.WriteLine("Popup dismissed"); }; popup.ShowAnimationFinished += (s, e) => { Console.WriteLine("Popup show animation finished"); }; popup.OutsideClicked += (s, e) => { Console.WriteLine("Popup outside clicked"); }; popup.TimedOut += (s, e) => { Console.WriteLine("Popup time out"); }; popup.BackButtonPressed += (s, e) => { Console.WriteLine("!!! BackButtonPressed Event on Popup!!"); popup.Hide(); }; btn.Clicked += (s, e) => { popup.Show(); }; Button close = new Button(popup) { Text = "Close" }; popup.SetPartContent("button1", close, true); Button ok = new Button(popup) { Text = "Ok" }; popup.SetPartContent("button3", ok, true); close.Clicked += (s, e) => { popup.Hide(); }; box.PackEnd(btn); conformant.SetContent(box); }
public override void Run(Window window) { Conformant conformant = new Conformant(window); conformant.Show(); Box box = new Box(window); box.Show(); Button btn = new Button(window) { AlignmentX = -1, WeightX = 1, Text = "Open" }; btn.Show(); Button btn2 = new Button(window) { AlignmentX = -1, WeightX = 1, Text = "set now" }; btn2.Show(); Popup popup = new Popup(window); DateTimeSelector dateTime = new DateTimeSelector(window) { Style = "time_layout", Format = "%d/%b/%Y %I:%M %p", DateTime = DateTime.Now }; popup.SetPartContent("default", dateTime, true); btn.Clicked += (s, e) => { popup.Show(); }; btn2.Clicked += (s, e) => { btn.Text = DateTime.Now.ToString("t"); dateTime.DateTime = DateTime.Now; }; Button close = new Button(popup) { Text = "Close" }; popup.SetPartContent("button1", close, true); Button ok = new Button(popup) { Text = "Ok" }; popup.SetPartContent("button3", ok, true); ok.Clicked += (s, e) => { btn.Text = dateTime.DateTime.ToString("t"); popup.Hide(); }; close.Clicked += (s, e) => { popup.Hide(); }; box.PackEnd(btn); box.PackEnd(btn2); conformant.SetContent(box); }
public CreateRouteActivity() : base(Resource.Layout.create_route_layout) { OnLoaded += delegate { AllowBackNavigation(); var intent = Intent; departureTimeSelector = FindViewById <DateTimeSelector>(Resource.Id.depature_date_picker); arrivalTimeSelector = FindViewById <DateTimeSelector>(Resource.Id.arrival_date_picker); if (intent.HasExtra("route")) { routeInfo = JsonConvert.DeserializeObject <RouteInfo>(intent.GetStringExtra("route")); departureTimeSelector.Date = routeInfo.DepartureTime; arrivalTimeSelector.Date = routeInfo.ArrivalTime; } bus = JsonConvert.DeserializeObject <BusInfo>(intent.GetStringExtra("bus")); // Are we editing the route var isEdit = intent.GetBooleanExtra("edit", false); var btnSubmit = FindViewById <Button>(Resource.Id.btn_submit); btnSubmit.Text = isEdit ? "Save Changes" : "Add Route"; SupportActionBar.Title = isEdit ? "Edit Route" : "Add Route"; var handler = new InputHandler(); handler.SetBindings(new InputBinding[] { new InputBinding("From", Resource.Id.tb_from, true) { OnBind = (view) => ((TextInputLayout)view).EditText.Text = routeInfo?.From }, new InputBinding("Destination", Resource.Id.tb_destination, true) { OnBind = (view) => ((TextInputLayout)view).EditText.Text = routeInfo?.Destination }, new InputBinding("Cost", Resource.Id.tb_cost, true, min: 1, max: 999999, compare: null) { OnBind = (view) => ((TextInputLayout)view).EditText.Text = routeInfo?.Cost.ToString() }, }, FindViewById <ViewGroup>(global::Android.Resource.Id.Content)); bool ValidateInputs() { if (handler.ValidateInputs(true).Count != 0) { return(false); } // Validate departure and arrival dates if (departureTimeSelector.Date == null) { Toast.MakeText(this, "Please select departure time!", ToastLength.Short).Show(); return(false); } if (arrivalTimeSelector.Date == null) { Toast.MakeText(this, "Please select arrival time!", ToastLength.Short).Show(); return(false); } if (departureTimeSelector.Date >= arrivalTimeSelector.Date) { Toast.MakeText(this, "Departure time cannot be greater or the same as the arrival time!", ToastLength.Short).Show(); return(false); } return(true); } btnSubmit.Click += async(s, e) => { if (ValidateInputs()) { var proxy = ProxyFactory.GetProxyInstace(); var formInputs = handler.GetInputs(); if (isEdit) { // Update var editRoute = new EditRouteInfo(); if (routeInfo.From != formInputs["From"]) { editRoute.From = formInputs["From"]; } if (routeInfo.Destination != formInputs["Destination"]) { editRoute.Destination = formInputs["Destination"]; } if (double.TryParse(formInputs["Cost"], out var cost) && routeInfo.Cost != cost) { editRoute.Cost = cost; } if (departureTimeSelector.Date != routeInfo.DepartureTime) { editRoute.DepartureTime = departureTimeSelector.Date; } if (arrivalTimeSelector.Date != routeInfo.ArrivalTime) { editRoute.ArrivalTime = arrivalTimeSelector.Date; } if (editRoute.AnyUpdate()) { var response = await proxy.ExecuteAsync(API.Endpoints.RoutesEndpoints.UpdateRoute(routeInfo.Id, editRoute)); if (response.Successful) { var bundle = new Intent(); bundle.PutExtra("action", "edit"); SetResult(Result.Ok, bundle); Finish(); } else { Toast.MakeText(this, response.GetErrorDescription(), ToastLength.Short).Show(); } } } else { // Add new route var response = await proxy.ExecuteAsync(API.Endpoints.RoutesEndpoints.CreateRoute(bus.Id, new CreateRouteInfo() { From = formInputs["From"], Destination = formInputs["Destination"], Cost = double.Parse(formInputs["Cost"]), DepartureTime = departureTimeSelector.Date.Value, ArrivalTime = arrivalTimeSelector.Date.Value, Comments = "" })); if (response.Successful) { var bundle = new Intent(); bundle.PutExtra("action", "create"); SetResult(Result.Ok, bundle); Finish(); } else { Toast.MakeText(this, response.GetErrorDescription(), ToastLength.Short).Show(); } } } }; }; }
void ApplyDateTimePicker(DateTimeSelector dateTimePicker) { _dateTimePicker = dateTimePicker; Content = _dateTimePicker; }