public DietCalculatorEventArgs(IDietCalculatorModel model) { this.Activity = model.Activity; this.Age = model.Age; this.BMI = model.BMI; this.CaloriesPerDay = model.CaloriesPerDay; this.Cholesterol = model.Cholesterol; this.CholesterolRatio = model.CholesterolRatio; this.CholesterolResult = model.CholesterolResult; this.HDL = model.HDL; this.Height = model.Height; this.Hips = model.Hips; this.HipsEnabled = model.HipsEnabled; this.IdealBMI = model.IdealBMI; this.IdealWeight = model.IdealWeight; this.IsMale = model.IsMale; this.LeanBodyMass = model.LeanBodyMass; this.Neck = model.Neck; this.Waist = model.Waist; this.WaistHeightRatio = model.WaistHeightRatio; this.WaistHipsRatio = model.WaistHipsRatio; this.WaistResult = model.WaistResult; this.Weight = model.Weight; this.WeightResult = model.WeightResult; this.PercentBodyFat = model.PercentBodyFat; }
public DietCalculatorController_v2(IDietCalculatorView view, IDietCalculatorModel model) : this(model) { this.view = view; view.SetModel(model); view.SetController(this); }
public DietCalculatorEventArgs( IDietCalculatorModel model ) { this.Activity = model.Activity; this.Age = model.Age; this.BMI = model.BMI; this.CaloriesPerDay = model.CaloriesPerDay; this.Cholesterol = model.Cholesterol; this.CholesterolRatio = model.CholesterolRatio; this.CholesterolResult = model.CholesterolResult; this.HDL = model.HDL; this.Height = model.Height; this.Hips = model.Hips; this.HipsEnabled = model.HipsEnabled; this.IdealBMI = model.IdealBMI; this.IdealWeight = model.IdealWeight; this.IsMale = model.IsMale; this.LeanBodyMass = model.LeanBodyMass; this.Neck = model.Neck; this.Waist = model.Waist; this.WaistHeightRatio = model.WaistHeightRatio; this.WaistHipsRatio = model.WaistHipsRatio; this.WaistResult = model.WaistResult; this.Weight = model.Weight; this.WeightResult = model.WeightResult; this.PercentBodyFat = model.PercentBodyFat; }
public DietCalculatorController_v2(IDietCalculatorView view, IDietCalculatorModel model) : this(model) { this.view = view; view.SetModel( model ); view.SetController( this ); }
public DietCalculatorController(IDietCalculatorView view, IDietCalculatorModel model) : this(model) { this.view = view; view.SetModel(model); view.SetController(this); model.HipsEnabledChanged += new EventHandler <DietCalculatorEventArgs>(model_HipsEnabledChanged); }
public DietCalculatorController(IDietCalculatorView view, IDietCalculatorModel model) : this(model) { this.view = view; view.SetModel(model); view.SetController(this); model.HipsEnabledChanged += new EventHandler<DietCalculatorEventArgs>(model_HipsEnabledChanged); }
public HomePage() { this.InitializeComponent(); this.navigationHelper = new NavigationHelper(this); this.navigationHelper.LoadState += navigationHelper_LoadState; this.navigationHelper.SaveState += navigationHelper_SaveState; // MVVM is not used in this example. We're porting an existing sample from Silverlight MVC // we will make use of the existing pattern to achieve the results model = new DietCalculatorModel(); controller = new DietCalculatorController(model); // bydefault Male is Selected, hence collapse hips txtHips.Visibility = tblHips.Visibility = Visibility.Collapsed; cmbGender.SelectionChanged += (sender, args) => { var isSelectedItemMale = ((string)cmbGender.SelectedItem == "Male"); txtHips.Visibility = tblHips.Visibility = isSelectedItemMale ? Visibility.Collapsed : Visibility.Visible; // corner case: reset hipsText to empty if the user had typed in hips and later changed the gender if (isSelectedItemMale) { txtHips.Text = string.Empty; } }; // subscribe to IdealBMI and IdealWeight changed events on the model to update the UI // as per the implementation in the core project, // any change in IdealBMI or IdealWeight are notified using appropriate event handlers model.IdealBMIChanged += (sender, e) => { txtIdealBMI.Text = e.IdealBMI.ToString(); }; model.IdealWeightChanged += (sender, e) => { txtIdealWeight.Text = e.IdealWeight.ToString(); }; txtIdealWeight.TextChanged += (sender, e) => { controller.SetWeight(StringToNumberUtility.GetDouble(txtWeight.Text, 0.00)); controller.SetHeight(StringToNumberUtility.GetDouble(txtHeight.Text, 0.00)); controller.SetIdealWeight(StringToNumberUtility.GetDouble(txtIdealWeight.Text, 0.00)); }; txtIdealBMI.TextChanged += (sender, e) => { controller.SetWeight(StringToNumberUtility.GetDouble(txtWeight.Text, 0.00)); controller.SetHeight(StringToNumberUtility.GetDouble(txtHeight.Text, 0.00)); controller.SetIdealBMI(StringToNumberUtility.GetDouble(txtIdealBMI.Text, 0.00)); }; }
public void SetModel( IDietCalculatorModel model ) { rbSedentary.Checked += new RoutedEventHandler( rbSedentary_Checked ); rbModerate.Checked += new RoutedEventHandler( rbModerate_Checked ); rbActive.Checked += new RoutedEventHandler( rbActive_Checked ); this.model = model; rbSedentary.Checked += new RoutedEventHandler( rbSedentary_Checked ); rbModerate.Checked += new RoutedEventHandler( rbModerate_Checked ); rbActive.Checked += new RoutedEventHandler( rbActive_Checked ); }
public void SetModel(IDietCalculatorModel model) { rbSedentary.Checked += new RoutedEventHandler(rbSedentary_Checked); rbModerate.Checked += new RoutedEventHandler(rbModerate_Checked); rbActive.Checked += new RoutedEventHandler(rbActive_Checked); this.model = model; rbSedentary.Checked += new RoutedEventHandler(rbSedentary_Checked); rbModerate.Checked += new RoutedEventHandler(rbModerate_Checked); rbActive.Checked += new RoutedEventHandler(rbActive_Checked); }
// Constructor public MainPage() { InitializeComponent(); // MVVM is not used in this example. We're porting an existing sample from Silverlight MVC // we will make use of the existing pattern to achieve the results model = new DietCalculatorModel(); controller = new DietCalculatorController(model); // bydefault Male is Selected, hence collapse hips txtHips.Visibility = tblHips.Visibility = Visibility.Collapsed; listGender.SelectionChanged += (sender, args) => { var isSelectedItemMale = ((string)listGender.SelectedItem == "Male"); txtHips.Visibility = tblHips.Visibility = isSelectedItemMale ? Visibility.Collapsed : Visibility.Visible; // corner case: reset hipsText to empty if the user had typed in hips and later changed the gender if (isSelectedItemMale) txtHips.Text = string.Empty; }; // subscribe to IdealBMI and IdealWeight changed events on the model to update the UI // as per the implementation in the core project, // any change in IdealBMI or IdealWeight are notified using appropriate event handlers model.IdealBMIChanged += (sender, e) => { txtIdealBMI.Text = e.IdealBMI.ToString(); }; model.IdealWeightChanged += (sender, e) => { txtIdealWeight.Text = e.IdealWeight.ToString(); }; txtIdealWeight.TextChanged += (sender, e) => { controller.SetWeight(StringToNumberUtility.GetDouble(txtWeight.Text, 0.00)); controller.SetHeight(StringToNumberUtility.GetDouble(txtHeight.Text, 0.00)); controller.SetIdealWeight(StringToNumberUtility.GetDouble(txtIdealWeight.Text, 0.00)); }; txtIdealBMI.TextChanged += (sender, e) => { controller.SetWeight(StringToNumberUtility.GetDouble(txtWeight.Text, 0.00)); controller.SetHeight(StringToNumberUtility.GetDouble(txtHeight.Text, 0.00)); controller.SetIdealBMI(StringToNumberUtility.GetDouble(txtIdealBMI.Text, 0.00)); }; // Sample code to localize the ApplicationBar //BuildLocalizedApplicationBar(); }
public HomePage() { this.InitializeComponent(); this.navigationHelper = new NavigationHelper(this); this.navigationHelper.LoadState += this.NavigationHelper_LoadState; this.navigationHelper.SaveState += this.NavigationHelper_SaveState; model = new DietCalculatorModel(); controller = new DietCalculatorController(model); // bydefault Male is Selected, hence collapse hips txtHips.Visibility = tblHips.Visibility = Visibility.Collapsed; listGender.SelectionChanged += (sender, args) => { var isSelectedItemMale = ((string)listGender.SelectedItem == "Male"); txtHips.Visibility = tblHips.Visibility = isSelectedItemMale ? Visibility.Collapsed : Visibility.Visible; // corner case: reset hipsText to empty if the user had typed in hips and later changed the gender if (isSelectedItemMale) txtHips.Text = string.Empty; }; // subscribe to IdealBMI and IdealWeight changed events on the model to update the UI // as per the implementation in the core project, // any change in IdealBMI or IdealWeight are notified using appropriate event handlers model.IdealBMIChanged += (sender, e) => { txtIdealBMI.Text = e.IdealBMI.ToString(); }; model.IdealWeightChanged += (sender, e) => { txtIdealWeight.Text = e.IdealWeight.ToString(); }; txtIdealWeight.TextChanged += (sender, e) => { controller.SetWeight(StringToNumberUtility.GetDouble(txtWeight.Text, 0.00)); controller.SetHeight(StringToNumberUtility.GetDouble(txtHeight.Text, 0.00)); controller.SetIdealWeight(StringToNumberUtility.GetDouble(txtIdealWeight.Text, 0.00)); }; txtIdealBMI.TextChanged += (sender, e) => { controller.SetWeight(StringToNumberUtility.GetDouble(txtWeight.Text, 0.00)); controller.SetHeight(StringToNumberUtility.GetDouble(txtHeight.Text, 0.00)); controller.SetIdealBMI(StringToNumberUtility.GetDouble(txtIdealBMI.Text, 0.00)); }; }
public void SetModel( IDietCalculatorModel model ) { model.IdealWeightChanged -= new EventHandler<DietCalculatorEventArgs>( model_IdealWeightChanged ); model.IdealBMIChanged -= new EventHandler<DietCalculatorEventArgs>( model_IdealBMIChanged ); model.WaistHipsRatioChanged -= new EventHandler<DietCalculatorEventArgs>( model_WaistHipsRatioChanged ); model.WaistResultChanged -= new EventHandler<DietCalculatorEventArgs>( model_WaistResultChanged ); model.WeightResultChanged -= new EventHandler<DietCalculatorEventArgs>( model_WeightResultChanged ); model.CholesterolRatioChanged -= new EventHandler<DietCalculatorEventArgs>( model_CholesterolRatioChanged ); model.CholesterolResultChanged -= new EventHandler<DietCalculatorEventArgs>( model_CholesterolResultChanged ); model.BMIChanged -= new EventHandler<DietCalculatorEventArgs>( model_BMIChanged ); model.WaistHeightRatioChanged -= new EventHandler<DietCalculatorEventArgs>( model_WaistHeightRatioChanged ); model.PercentBodyFatChanged -= new EventHandler<DietCalculatorEventArgs>( model_PercentBodyFatChanged ); model.LeanBodyMassChanged -= new EventHandler<DietCalculatorEventArgs>( model_LeanBodyMassChanged ); model.CaloriesPerDayChanged -= new EventHandler<DietCalculatorEventArgs>( model_CaloriesPerDayChanged ); this.model = model; model.IdealWeightChanged += new EventHandler<DietCalculatorEventArgs>( model_IdealWeightChanged ); model.IdealBMIChanged += new EventHandler<DietCalculatorEventArgs>( model_IdealBMIChanged ); model.WaistHipsRatioChanged += new EventHandler<DietCalculatorEventArgs>( model_WaistHipsRatioChanged ); model.WaistResultChanged += new EventHandler<DietCalculatorEventArgs>( model_WaistResultChanged ); model.WeightResultChanged += new EventHandler<DietCalculatorEventArgs>( model_WeightResultChanged ); model.CholesterolRatioChanged += new EventHandler<DietCalculatorEventArgs>( model_CholesterolRatioChanged ); model.CholesterolResultChanged += new EventHandler<DietCalculatorEventArgs>( model_CholesterolResultChanged ); model.BMIChanged += new EventHandler<DietCalculatorEventArgs>( model_BMIChanged ); model.WaistHeightRatioChanged += new EventHandler<DietCalculatorEventArgs>( model_WaistHeightRatioChanged ); model.PercentBodyFatChanged += new EventHandler<DietCalculatorEventArgs>( model_PercentBodyFatChanged ); model.LeanBodyMassChanged += new EventHandler<DietCalculatorEventArgs>( model_LeanBodyMassChanged ); model.CaloriesPerDayChanged += new EventHandler<DietCalculatorEventArgs>( model_CaloriesPerDayChanged ); tbAge.TextChanged += new TextChangedEventHandler( tbAge_TextChanged ); cbIsMale.Checked += new RoutedEventHandler( cbIsMale_Checked ); cbIsMale.Unchecked += new RoutedEventHandler( cbIsMale_Unchecked ); tbWeight.TextChanged += new TextChangedEventHandler( tbWeight_TextChanged ); tbHeight.TextChanged += new TextChangedEventHandler( tbHeight_TextChanged ); tbWaist.TextChanged += new TextChangedEventHandler(tbWaist_TextChanged); tbHips.TextChanged += new TextChangedEventHandler( tbHips_TextChanged ); tbIdealWeight.TextChanged += new TextChangedEventHandler( tbIdealWeight_TextChanged ); tbIdealBMI.TextChanged += new TextChangedEventHandler( tbIdealBMI_TextChanged ); tbCholesterol.TextChanged += new TextChangedEventHandler( tbCholesterol_TextChanged ); tbHDL.TextChanged += new TextChangedEventHandler( tbHDL_TextChanged ); tbNeck.TextChanged += new TextChangedEventHandler( tbNeck_TextChanged ); rbSedentary.Checked += new RoutedEventHandler( rbSedentary_Checked ); rbModerate.Checked += new RoutedEventHandler( rbModerate_Checked ); rbActive.Checked += new RoutedEventHandler( rbActive_Checked ); }
public void SetModel(IDietCalculatorModel model) { model.IdealWeightChanged -= new EventHandler <DietCalculatorEventArgs>(model_IdealWeightChanged); model.IdealBMIChanged -= new EventHandler <DietCalculatorEventArgs>(model_IdealBMIChanged); model.WaistHipsRatioChanged -= new EventHandler <DietCalculatorEventArgs>(model_WaistHipsRatioChanged); model.WaistResultChanged -= new EventHandler <DietCalculatorEventArgs>(model_WaistResultChanged); model.WeightResultChanged -= new EventHandler <DietCalculatorEventArgs>(model_WeightResultChanged); model.CholesterolRatioChanged -= new EventHandler <DietCalculatorEventArgs>(model_CholesterolRatioChanged); model.CholesterolResultChanged -= new EventHandler <DietCalculatorEventArgs>(model_CholesterolResultChanged); model.BMIChanged -= new EventHandler <DietCalculatorEventArgs>(model_BMIChanged); model.WaistHeightRatioChanged -= new EventHandler <DietCalculatorEventArgs>(model_WaistHeightRatioChanged); model.PercentBodyFatChanged -= new EventHandler <DietCalculatorEventArgs>(model_PercentBodyFatChanged); model.LeanBodyMassChanged -= new EventHandler <DietCalculatorEventArgs>(model_LeanBodyMassChanged); model.CaloriesPerDayChanged -= new EventHandler <DietCalculatorEventArgs>(model_CaloriesPerDayChanged); this.model = model; model.IdealWeightChanged += new EventHandler <DietCalculatorEventArgs>(model_IdealWeightChanged); model.IdealBMIChanged += new EventHandler <DietCalculatorEventArgs>(model_IdealBMIChanged); model.WaistHipsRatioChanged += new EventHandler <DietCalculatorEventArgs>(model_WaistHipsRatioChanged); model.WaistResultChanged += new EventHandler <DietCalculatorEventArgs>(model_WaistResultChanged); model.WeightResultChanged += new EventHandler <DietCalculatorEventArgs>(model_WeightResultChanged); model.CholesterolRatioChanged += new EventHandler <DietCalculatorEventArgs>(model_CholesterolRatioChanged); model.CholesterolResultChanged += new EventHandler <DietCalculatorEventArgs>(model_CholesterolResultChanged); model.BMIChanged += new EventHandler <DietCalculatorEventArgs>(model_BMIChanged); model.WaistHeightRatioChanged += new EventHandler <DietCalculatorEventArgs>(model_WaistHeightRatioChanged); model.PercentBodyFatChanged += new EventHandler <DietCalculatorEventArgs>(model_PercentBodyFatChanged); model.LeanBodyMassChanged += new EventHandler <DietCalculatorEventArgs>(model_LeanBodyMassChanged); model.CaloriesPerDayChanged += new EventHandler <DietCalculatorEventArgs>(model_CaloriesPerDayChanged); tbAge.TextChanged += new TextChangedEventHandler(tbAge_TextChanged); cbIsMale.Checked += new RoutedEventHandler(cbIsMale_Checked); cbIsMale.Unchecked += new RoutedEventHandler(cbIsMale_Unchecked); tbWeight.TextChanged += new TextChangedEventHandler(tbWeight_TextChanged); tbHeight.TextChanged += new TextChangedEventHandler(tbHeight_TextChanged); tbWaist.TextChanged += new TextChangedEventHandler(tbWaist_TextChanged); tbHips.TextChanged += new TextChangedEventHandler(tbHips_TextChanged); tbIdealWeight.TextChanged += new TextChangedEventHandler(tbIdealWeight_TextChanged); tbIdealBMI.TextChanged += new TextChangedEventHandler(tbIdealBMI_TextChanged); tbCholesterol.TextChanged += new TextChangedEventHandler(tbCholesterol_TextChanged); tbHDL.TextChanged += new TextChangedEventHandler(tbHDL_TextChanged); tbNeck.TextChanged += new TextChangedEventHandler(tbNeck_TextChanged); rbSedentary.Checked += new RoutedEventHandler(rbSedentary_Checked); rbModerate.Checked += new RoutedEventHandler(rbModerate_Checked); rbActive.Checked += new RoutedEventHandler(rbActive_Checked); }
/// <summary> /// Finisheds the launching. /// </summary> /// <returns><c>true</c>, if launching was finisheded, <c>false</c> otherwise.</returns> /// <param name="application">Application.</param> /// <param name="launchOptions">Launch options.</param> public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions) { UINavigationBar.Appearance.TintColor = SecondaryColor; window = new UIWindow(UIScreen.MainScreen.Bounds); model = new DietCalculatorModel(); model.IdealWeightChanged += (sender, e) => { Console.WriteLine(model.IdealWeight.ToString()); }; controller = new DietCalculatorController(model); CreateUI(); mainDvc = new DietDialogViewController(rootElement); nvc = new UINavigationController(mainDvc); window.RootViewController = nvc; window.MakeKeyAndVisible(); return(true); }
/// <summary> /// Finisheds the launching. /// </summary> /// <returns><c>true</c>, if launching was finisheded, <c>false</c> otherwise.</returns> /// <param name="application">Application.</param> /// <param name="launchOptions">Launch options.</param> public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions) { UINavigationBar.Appearance.TintColor = SecondaryColor; window = new UIWindow (UIScreen.MainScreen.Bounds); model = new DietCalculatorModel (); model.IdealWeightChanged += (sender, e) => { Console.WriteLine(model.IdealWeight.ToString()); }; controller = new DietCalculatorController (model); CreateUI (); mainDvc = new DietDialogViewController (rootElement); nvc = new UINavigationController (mainDvc); window.RootViewController = nvc; window.MakeKeyAndVisible (); return true; }
// Sample code for building a localized ApplicationBar //private void BuildLocalizedApplicationBar() //{ // // Set the page's ApplicationBar to a new instance of ApplicationBar. // ApplicationBar = new ApplicationBar(); // // Create a new button and set the text value to the localized string from AppResources. // ApplicationBarIconButton appBarButton = new ApplicationBarIconButton(new Uri("/Assets/AppBar/appbar.add.rest.png", UriKind.Relative)); // appBarButton.Text = AppResources.AppBarButtonText; // ApplicationBar.Buttons.Add(appBarButton); // // Create a new menu item with the localized string from AppResources. // ApplicationBarMenuItem appBarMenuItem = new ApplicationBarMenuItem(AppResources.AppBarMenuItemText); // ApplicationBar.MenuItems.Add(appBarMenuItem); //} private void BtnCalculate_OnClick(object sender, RoutedEventArgs e) { controller.SetAge(StringToNumberUtility.GetInt32(txtAge.Text, 0)); controller.SetGender((listGender.SelectedIndex == 0) ? true : false); controller.SetWeight(StringToNumberUtility.GetDouble(txtWeight.Text, 0.00)); controller.SetHeight(StringToNumberUtility.GetDouble(txtHeight.Text, 0.00)); controller.SetWaist(StringToNumberUtility.GetDouble(txtWaist.Text, 0.00)); controller.SetHips(StringToNumberUtility.GetDouble((!string.IsNullOrEmpty(txtHips.Text) ? txtHips.Text : null), 0.00)); controller.SetIdealWeight(StringToNumberUtility.GetDouble(txtIdealWeight.Text, 0.00)); controller.SetIdealBMI(StringToNumberUtility.GetDouble(txtIdealBMI.Text, 0.00)); controller.SetCholesterol(StringToNumberUtility.GetDouble(txtCholestrol.Text, 0.00)); controller.SetHDL(StringToNumberUtility.GetDouble(txtHDL.Text, 0.00)); controller.SetNeck(StringToNumberUtility.GetDouble(txtNeck.Text, 0.00)); var selectedActivity = (string)listActivity.SelectedItem; controller.SetActivity((LevelOfActivity)Enum.Parse(typeof(LevelOfActivity), selectedActivity)); // set the model to a public static property. This will be accessed from ResultsPage CalculatedModel = model; NavigationService.Navigate(new Uri("/ResultsPage.xaml", UriKind.Relative)); }
public DietCalculatorController(IDietCalculatorModel model ) { this.model = model; }
public ResultControl(IDietCalculatorModel model) : this() { this.DataContext = model; }
/// <summary> /// OnCreate /// </summary> /// <param name="bundle"></param> protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); model = new DietCalculatorModel(); controller = new DietCalculatorController(model); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); // retrieve the widgets in UI using FindByViewId to interact programmatically var ageText = FindViewById<EditText>(Resource.Id.ageText); var genderSpinner = FindViewById<Spinner>(Resource.Id.genderSpinner); var levelOfActivitySpinner = FindViewById<Spinner>(Resource.Id.levelOfActivitySpinner); var calculateButton = FindViewById<Button>(Resource.Id.calculateButton); var weightText = FindViewById<EditText>(Resource.Id.weightText); var heightText = FindViewById<EditText>(Resource.Id.heightText); var waistText = FindViewById<EditText>(Resource.Id.waistText); var hipsLayout = FindViewById<LinearLayout>(Resource.Id.hipsLayout); var hipstText = FindViewById<EditText>(Resource.Id.hipsText); var idealWeightText = FindViewById<EditText>(Resource.Id.idealWeightText); var idealBMIText = FindViewById<EditText>(Resource.Id.idealBMIText); var cholestrolText = FindViewById<EditText>(Resource.Id.cholestrolText); var hdlText = FindViewById<EditText>(Resource.Id.hdlText); var neckText = FindViewById<EditText>(Resource.Id.neckText); // Assign "Male", "Female" values to spinner using ArrayAdapter. Refer Resources/Values/String.xml ArrayAdapter genderAdapter = ArrayAdapter.CreateFromResource(this, Resource.Array.gender_array, Resource.Layout.diet_spinner_item); genderAdapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem); genderSpinner.Adapter = genderAdapter; // Hips should be visible only if "Female" is selected genderSpinner.ItemSelected += (sender, args) => { var isSelectedItemMale = ((string) genderSpinner.SelectedItem == "Male"); hipsLayout.Visibility = isSelectedItemMale ? ViewStates.Gone : ViewStates.Visible; // corner case: reset hipsText to empty if the user had typed in hips and later changed the gender if (isSelectedItemMale) hipstText.Text = string.Empty; }; // Assign "Active", "Moderate", "Sedentary" values to spinner using ArrayAdapter. Refer Resources/Values/String.xml ArrayAdapter levelOfActivityAdapter = ArrayAdapter.CreateFromResource(this, Resource.Array.levelOfActivity_array, Resource.Layout.diet_spinner_item); levelOfActivityAdapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem); levelOfActivitySpinner.Adapter = levelOfActivityAdapter; // On Button Click, set appropriate values in the Controller Class calculateButton.Click += (sender, args) => { controller.SetAge(StringToNumberUtility.GetInt32(ageText.Text, 0)); controller.SetGender((genderSpinner.SelectedItemId == 0) ? true : false); controller.SetWeight(StringToNumberUtility.GetDouble(weightText.Text, 0.00)); controller.SetHeight(StringToNumberUtility.GetDouble(heightText.Text, 0.00)); controller.SetWaist(StringToNumberUtility.GetDouble(waistText.Text, 0.00)); controller.SetHips(StringToNumberUtility.GetDouble((!string.IsNullOrEmpty(hipstText.Text) ? hipstText.Text : null), 0.00)); controller.SetIdealWeight(StringToNumberUtility.GetDouble(idealWeightText.Text, 0.00)); controller.SetIdealBMI(StringToNumberUtility.GetDouble(idealBMIText.Text, 0.00)); controller.SetCholesterol(StringToNumberUtility.GetDouble(cholestrolText.Text, 0.00)); controller.SetHDL(StringToNumberUtility.GetDouble(hdlText.Text, 0.00)); controller.SetNeck(StringToNumberUtility.GetDouble(neckText.Text, 0.00)); var selectedActivity = (string)levelOfActivitySpinner.SelectedItem; controller.SetActivity((LevelOfActivity)Enum.Parse(typeof(LevelOfActivity), selectedActivity)); // Since Model classes are already populated with the results, pass them to Result Activity // using PutExtra method var resultIntent = new Intent(this, typeof (ResultsActivity)); resultIntent.PutExtra("CaloriesPerDay", model.CaloriesPerDay.ToString()); resultIntent.PutExtra("LeanBodyMass", model.LeanBodyMass.ToString()); resultIntent.PutExtra("PercentBodyFat", model.PercentBodyFat.ToString() + " %"); resultIntent.PutExtra("WaistHipsRatio", model.WaistHipsRatio.ToString() + " cm"); resultIntent.PutExtra("BMI", model.BMI.ToString()); resultIntent.PutExtra("CholesterolRatio", model.CholesterolRatio.ToString() + " mmol/L"); resultIntent.PutExtra("WaistHeightRatio", model.WaistHeightRatio.ToString() + " cm"); resultIntent.PutExtra("IdealWeight", model.IdealWeight.ToString() + " kg"); StartActivity(resultIntent); }; // subscribe to IdealBMI and IdealWeight changed events on the model to update the UI // as per the implementation in the core project, // any change in IdealBMI or IdealWeight are notified using appropriate event handlers model.IdealBMIChanged += (sender, e) => { idealBMIText.Text = e.IdealBMI.ToString(); }; model.IdealWeightChanged += (sender, e) => { idealWeightText.Text = e.IdealWeight.ToString(); }; // Ideal BMI has to be calculated if user changes the IdealWeight. // Set all the fields in the controller that are used for calcaulation idealWeightText.TextChanged += (sender, e) => { controller.SetWeight(StringToNumberUtility.GetDouble(weightText.Text, 0.00)); controller.SetHeight(StringToNumberUtility.GetDouble(heightText.Text, 0.00)); controller.SetIdealWeight(StringToNumberUtility.GetDouble(idealWeightText.Text, 0.00)); }; idealBMIText.TextChanged += (sender, e) => { controller.SetWeight(StringToNumberUtility.GetDouble(weightText.Text, 0.00)); controller.SetHeight(StringToNumberUtility.GetDouble(heightText.Text, 0.00)); controller.SetIdealBMI(StringToNumberUtility.GetDouble(idealBMIText.Text, 0.00)); }; }
/// <summary> /// OnCreate /// </summary> /// <param name="bundle"></param> protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); model = new DietCalculatorModel(); controller = new DietCalculatorController(model); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); // retrieve the widgets in UI using FindByViewId to interact programmatically var ageText = FindViewById <EditText>(Resource.Id.ageText); var genderSpinner = FindViewById <Spinner>(Resource.Id.genderSpinner); var levelOfActivitySpinner = FindViewById <Spinner>(Resource.Id.levelOfActivitySpinner); var calculateButton = FindViewById <Button>(Resource.Id.calculateButton); var weightText = FindViewById <EditText>(Resource.Id.weightText); var heightText = FindViewById <EditText>(Resource.Id.heightText); var waistText = FindViewById <EditText>(Resource.Id.waistText); var hipsLayout = FindViewById <LinearLayout>(Resource.Id.hipsLayout); var hipstText = FindViewById <EditText>(Resource.Id.hipsText); var idealWeightText = FindViewById <EditText>(Resource.Id.idealWeightText); var idealBMIText = FindViewById <EditText>(Resource.Id.idealBMIText); var cholestrolText = FindViewById <EditText>(Resource.Id.cholestrolText); var hdlText = FindViewById <EditText>(Resource.Id.hdlText); var neckText = FindViewById <EditText>(Resource.Id.neckText); // Assign "Male", "Female" values to spinner using ArrayAdapter. Refer Resources/Values/String.xml ArrayAdapter genderAdapter = ArrayAdapter.CreateFromResource(this, Resource.Array.gender_array, Resource.Layout.diet_spinner_item); genderAdapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem); genderSpinner.Adapter = genderAdapter; // Hips should be visible only if "Female" is selected genderSpinner.ItemSelected += (sender, args) => { var isSelectedItemMale = ((string)genderSpinner.SelectedItem == "Male"); hipsLayout.Visibility = isSelectedItemMale ? ViewStates.Gone : ViewStates.Visible; // corner case: reset hipsText to empty if the user had typed in hips and later changed the gender if (isSelectedItemMale) { hipstText.Text = string.Empty; } }; // Assign "Active", "Moderate", "Sedentary" values to spinner using ArrayAdapter. Refer Resources/Values/String.xml ArrayAdapter levelOfActivityAdapter = ArrayAdapter.CreateFromResource(this, Resource.Array.levelOfActivity_array, Resource.Layout.diet_spinner_item); levelOfActivityAdapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem); levelOfActivitySpinner.Adapter = levelOfActivityAdapter; // On Button Click, set appropriate values in the Controller Class calculateButton.Click += (sender, args) => { controller.SetAge(StringToNumberUtility.GetInt32(ageText.Text, 0)); controller.SetGender((genderSpinner.SelectedItemId == 0) ? true : false); controller.SetWeight(StringToNumberUtility.GetDouble(weightText.Text, 0.00)); controller.SetHeight(StringToNumberUtility.GetDouble(heightText.Text, 0.00)); controller.SetWaist(StringToNumberUtility.GetDouble(waistText.Text, 0.00)); controller.SetHips(StringToNumberUtility.GetDouble((!string.IsNullOrEmpty(hipstText.Text) ? hipstText.Text : null), 0.00)); controller.SetIdealWeight(StringToNumberUtility.GetDouble(idealWeightText.Text, 0.00)); controller.SetIdealBMI(StringToNumberUtility.GetDouble(idealBMIText.Text, 0.00)); controller.SetCholesterol(StringToNumberUtility.GetDouble(cholestrolText.Text, 0.00)); controller.SetHDL(StringToNumberUtility.GetDouble(hdlText.Text, 0.00)); controller.SetNeck(StringToNumberUtility.GetDouble(neckText.Text, 0.00)); var selectedActivity = (string)levelOfActivitySpinner.SelectedItem; controller.SetActivity((LevelOfActivity)Enum.Parse(typeof(LevelOfActivity), selectedActivity)); // Since Model classes are already populated with the results, pass them to Result Activity // using PutExtra method var resultIntent = new Intent(this, typeof(ResultsActivity)); resultIntent.PutExtra("CaloriesPerDay", model.CaloriesPerDay.ToString()); resultIntent.PutExtra("LeanBodyMass", model.LeanBodyMass.ToString()); resultIntent.PutExtra("PercentBodyFat", model.PercentBodyFat.ToString() + " %"); resultIntent.PutExtra("WaistHipsRatio", model.WaistHipsRatio.ToString() + " cm"); resultIntent.PutExtra("BMI", model.BMI.ToString()); resultIntent.PutExtra("CholesterolRatio", model.CholesterolRatio.ToString() + " mmol/L"); resultIntent.PutExtra("WaistHeightRatio", model.WaistHeightRatio.ToString() + " cm"); resultIntent.PutExtra("IdealWeight", model.IdealWeight.ToString() + " kg"); StartActivity(resultIntent); }; // subscribe to IdealBMI and IdealWeight changed events on the model to update the UI // as per the implementation in the core project, // any change in IdealBMI or IdealWeight are notified using appropriate event handlers model.IdealBMIChanged += (sender, e) => { idealBMIText.Text = e.IdealBMI.ToString(); }; model.IdealWeightChanged += (sender, e) => { idealWeightText.Text = e.IdealWeight.ToString(); }; // Ideal BMI has to be calculated if user changes the IdealWeight. // Set all the fields in the controller that are used for calcaulation idealWeightText.TextChanged += (sender, e) => { controller.SetWeight(StringToNumberUtility.GetDouble(weightText.Text, 0.00)); controller.SetHeight(StringToNumberUtility.GetDouble(heightText.Text, 0.00)); controller.SetIdealWeight(StringToNumberUtility.GetDouble(idealWeightText.Text, 0.00)); }; idealBMIText.TextChanged += (sender, e) => { controller.SetWeight(StringToNumberUtility.GetDouble(weightText.Text, 0.00)); controller.SetHeight(StringToNumberUtility.GetDouble(heightText.Text, 0.00)); controller.SetIdealBMI(StringToNumberUtility.GetDouble(idealBMIText.Text, 0.00)); }; }
public DietCalculatorController(IDietCalculatorModel model) { this.model = model; }