Ejemplo n.º 1
0
        private static IExercise CreateExercise(XmlParsedData xmlParsedData, string name, UnityEngine.Object[] resources)
        {
            Sprite sprite = FindSpriteByName(xmlParsedData.ImageName, resources);

            if (sprite == null)
            {
                Debug.LogError($"Image \"{xmlParsedData.ImageName}\" was not found");
            }
            SimpleExercise exercise = new SimpleExercise(name, xmlParsedData.Text, sprite, xmlParsedData.Answer);

            return(exercise);
        }
Ejemplo n.º 2
0
        public HorizontalScrollCell()
        {

            Label bodyPartLabel;
            String currentBodyPart = "";

			List<Exercise> exerciseList = Manager.Instance.Exercise.GetAllExercises().GetRange(0, 10);

            StackLayout nestedStackLayout = new StackLayout
            {
                VerticalOptions = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.CenterAndExpand,
                Orientation = StackOrientation.Horizontal,
                BackgroundColor = Color.Gray,
                HeightRequest = 215
            };

            ScrollView nestedStackScrollView = new ScrollView
            {
                VerticalOptions = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.FillAndExpand,
                Orientation = ScrollOrientation.Horizontal,
                HeightRequest = 215,
                Padding = new Thickness(20)
            };

            foreach (Exercise exercise in exerciseList)
            {
                if (currentBodyPart != exercise.Bodypart)
                {
                    currentBodyPart = exercise.Bodypart;


                    bodyPartLabel = new Label
                    {
                        HorizontalOptions = LayoutOptions.Fill,
                        XAlign = TextAlignment.Center,
                        Font = Font.BoldSystemFontOfSize(20)
                    };
                    var bodyPartFrame = new Frame
                    {
                        Content = bodyPartLabel,
                        OutlineColor = Color.Silver,
                        BackgroundColor = Color.Lime,
                        HeightRequest = 20
                    };
                    bodyPartLabel.Text = exercise.Bodypart;
                   // primaryStackLayout.Children.Add(bodyPartFrame);
                    nestedStackLayout = new StackLayout
                    {
                        VerticalOptions = LayoutOptions.Start,
                        HorizontalOptions = LayoutOptions.CenterAndExpand,
                        Orientation = StackOrientation.Horizontal,
                        BackgroundColor = Color.Gray,
                        HeightRequest = 215
                    };

                    nestedStackScrollView = new ScrollView
                    {
                        VerticalOptions = LayoutOptions.Start,
                        HorizontalOptions = LayoutOptions.FillAndExpand,
                        Orientation = ScrollOrientation.Horizontal,
                        HeightRequest = 215,
                        Padding = new Thickness(20)
                    };

                    nestedStackScrollView.Content = nestedStackLayout;

                   // primaryStackLayout.Children.Add(nestedStackScrollView);

                }



                StackLayout exerciseStackLayout = new StackLayout
                {
                    VerticalOptions = LayoutOptions.CenterAndExpand,
                    HorizontalOptions = LayoutOptions.CenterAndExpand,
                    Orientation = StackOrientation.Vertical,
                    WidthRequest = 150,
                    HeightRequest = 190

                };

                var exerciseFrame = new Frame
               {
                   Content = exerciseStackLayout,
                   OutlineColor = Color.Silver,
                   Padding = new Thickness(20)
               };

                var tapGestureRecognizer = new TapGestureRecognizer();
                tapGestureRecognizer.TappedCallback += (s, e) =>
                {
                    SimpleExercise simpleExercise = new SimpleExercise(exercise);
                    this.View.Navigation.PushAsync(new ExercisePage(simpleExercise));
                };

                exerciseFrame.GestureRecognizers.Add(tapGestureRecognizer);
                Label exerciseNameLabel = new Label
                {
                    Text = exercise.ExerciseName,
                    VerticalOptions = LayoutOptions.CenterAndExpand,
                    HorizontalOptions = LayoutOptions.CenterAndExpand,
                    XAlign = TextAlignment.Center
                };

                Image exerciseImage = new Image
                {
                    Source = ImageSource.FromResource("WorkoutCreator.Images.Exercise.jpg"),
                    WidthRequest = 120,
                    HeightRequest = 120,
                };

                exerciseStackLayout.Children.Add(exerciseNameLabel);
                exerciseStackLayout.Children.Add(exerciseImage);



                nestedStackLayout.Children.Add(exerciseFrame);
                nestedStackScrollView.Content = nestedStackLayout;
            }
        }
Ejemplo n.º 3
0
        public ExercisePage(SimpleExercise exercise, bool isExerciseEdit = false, int exid = 1)
        {
            this.exercise = exercise;
            this.isExerciseEdit = isExerciseEdit;
            Title = isExerciseEdit ? "Edit Exercise Prescription Details" : "Add Exercise Prescription Details";

            Label exerciseNameLabel = new Label
            {
                Text = exercise.Exercise.ExerciseName,
				FontSize = 45
			
            };
            Label exerciseCategoryLabel = new Label
            {
                Text = exercise.Exercise.Bodypart,
				FontSize = 40
            };
            StackLayout exerciseStack = new StackLayout
            {
                Orientation = StackOrientation.Vertical,
                Children =
                {
                    exerciseNameLabel,
                    exerciseCategoryLabel
                }
            };
            Image exerciseImage = new Image
            {
                HorizontalOptions = LayoutOptions.StartAndExpand,
                WidthRequest = 180,
                HeightRequest = 180,
            };

            var exerciseFrame = new Frame
            {
                Content = exerciseImage,
                OutlineColor = Color.Silver,
                Padding = new Thickness(20),
                HorizontalOptions = LayoutOptions.EndAndExpand,
            };

            try
            {

                if (exercise.Exercise.ImageFile.Trim() != "")
                {
                    String imageBasePath = "http://www.mymobilefit.com/StrengthImages/";
                    String finalImagePath = imageBasePath + exercise.Exercise.ImageFile.Trim();

                    exerciseImage.Source = new UriImageSource
                    {
                        Uri = new Uri(finalImagePath),
                        CachingEnabled = true,
                        CacheValidity = new TimeSpan(5, 0, 0, 0)
                    };
                }
            }
            catch (Exception e2)
            {
                String exceptionMessage = e2.Message;
            }
				

            StackLayout exercisePrescriptionHeaderStackLayout = new StackLayout
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                Orientation = StackOrientation.Horizontal,
                Children =
                {
                    exerciseStack,
                    exerciseFrame
                }
            };

            CustomPicker setPicker = new CustomPicker
            {
                Title = "Sets"
            };
            foreach(int sets in SimpleExercise.SetOptions)
            {
                setPicker.Items.Add(sets.ToString());
            };
            CustomPicker repPicker = new CustomPicker
            {
                Title = "Reps"
            };
            foreach (int reps in SimpleExercise.RepOptions)
            {
                repPicker.Items.Add(reps.ToString());
            };

            CustomPicker weightPicker = new CustomPicker
            {
                Title = "Weight"
            };
			foreach(int weight in SimpleExercise.WeightOptions)
            {
                weightPicker.Items.Add(weight.ToString());
            }

			CustomPicker seatPositionLabelPicker1 = new CustomPicker
			{
				Title = "Label",
				WidthRequest = 200
			};
			CustomPicker seatPositionLabelPicker2 = new CustomPicker
			{
				Title = "Label",
				WidthRequest = 200
			};
			CustomPicker seatPositionLabelPicker3 = new CustomPicker
			{
				Title = "Label",
				WidthRequest = 200
			};
			CustomPicker seatPositionLabelPicker4 = new CustomPicker
			{
				Title = "Label",
				WidthRequest = 200
			};
			foreach(string seatPosLabel in SimpleExercise.SeatPositionLabelOptions)
			{
				seatPositionLabelPicker1.Items.Add(seatPosLabel);
				seatPositionLabelPicker2.Items.Add(seatPosLabel);
				seatPositionLabelPicker3.Items.Add(seatPosLabel);
				seatPositionLabelPicker4.Items.Add(seatPosLabel);
			}

			CustomPicker seatPositionValuePicker1 = new CustomPicker
			{
				Title = "Value",
				WidthRequest = 90
			};
			CustomPicker seatPositionValuePicker2 = new CustomPicker
			{
				Title = "Value",
				WidthRequest = 90
			};
			CustomPicker seatPositionValuePicker3 = new CustomPicker
			{
				Title = "Value",
				WidthRequest = 90
			};
			CustomPicker seatPositionValuePicker4 = new CustomPicker
			{
				Title = "Value",
				WidthRequest = 90
			};
			foreach(string seatPosValue in SimpleExercise.SeatPositionValueOptions)
			{
				seatPositionValuePicker1.Items.Add(seatPosValue);
				seatPositionValuePicker2.Items.Add(seatPosValue);
				seatPositionValuePicker3.Items.Add(seatPosValue);
				seatPositionValuePicker4.Items.Add(seatPosValue);
			}

            //Set selected index bindings
            this.BindingContext = exercise;
           	setPicker.SetBinding(Picker.SelectedIndexProperty, "Sets");
            repPicker.SetBinding(Picker.SelectedIndexProperty, "Reps");
            weightPicker.SetBinding(Picker.SelectedIndexProperty, "Weight");

			seatPositionLabelPicker1.SetBinding(Picker.SelectedIndexProperty, "SeatPosition1Label");
			seatPositionLabelPicker2.SetBinding(Picker.SelectedIndexProperty, "SeatPosition2Label");
			seatPositionLabelPicker3.SetBinding(Picker.SelectedIndexProperty, "SeatPosition3Label");
			seatPositionLabelPicker4.SetBinding(Picker.SelectedIndexProperty, "SeatPosition4Label");

			seatPositionValuePicker1.SetBinding(Picker.SelectedIndexProperty, "SeatPosition1Value");
			seatPositionValuePicker2.SetBinding(Picker.SelectedIndexProperty, "SeatPosition2Value");
			seatPositionValuePicker3.SetBinding(Picker.SelectedIndexProperty, "SeatPosition3Value");
			seatPositionValuePicker4.SetBinding(Picker.SelectedIndexProperty, "SeatPosition4Value");

            StackLayout labelsStackLayout = new StackLayout
            {
                Padding = new Thickness(20),
                Children =
                {
                    exercisePrescriptionHeaderStackLayout,
                    new StackLayout {
                        Children =
                        {
                            new Label
                            {
                                Text = "Target Sets: "
                            },
                            setPicker

                        },
                        Orientation = StackOrientation.Horizontal,
                        Padding = new Thickness(10),
                        Spacing = 40
                    },
                     new StackLayout {
                        Children =
                        {
                            new Label
                            {
                                Text = "Target Reps: "

                            },
                            repPicker
                        },
                        Orientation = StackOrientation.Horizontal,
                        Padding = new Thickness(10),
                        Spacing = 40
                     },
                   new StackLayout {
                        Children =
                        {
                           new Label
                           {
                               Text = "Target Weight (lbs):  "
                            },
                            weightPicker
                        },
                        Orientation = StackOrientation.Horizontal,
                        Padding = new Thickness(10),
                        Spacing = 40
                   },
                    new StackLayout {
                        Children =
                        {
							new Label
							{
								Text = "Seat Pos 1:  "
							},
							seatPositionLabelPicker1,
							seatPositionValuePicker1
                            //seatPosition1Entry
                        },
                        Orientation = StackOrientation.Horizontal,
                        Padding = new Thickness(10),
                        Spacing = 35
                            
                    },
                     new StackLayout {
                        Children =
                        {
                            new Label
                            {
                                Text = "Seat Pos 2:  "
                            },
							seatPositionLabelPicker2,
							seatPositionValuePicker2
                        },
                        Orientation = StackOrientation.Horizontal,
                        Padding = new Thickness(10),
                        Spacing = 35
                     }
					,
					new StackLayout {
						Children =
						{
							new Label
							{
								Text = "Seat Pos 3:  "
							},
							seatPositionLabelPicker3,
							seatPositionValuePicker3
						},
						Orientation = StackOrientation.Horizontal,
						Padding = new Thickness(10),
						Spacing = 35
					}
					,
					new StackLayout {
						Children =
						{
							new Label
							{
								Text = "Seat Pos 4:  "
							},
							seatPositionLabelPicker4,
							seatPositionValuePicker4
						},
						Orientation = StackOrientation.Horizontal,
						Padding = new Thickness(10),
						Spacing = 35
					}
                  
                },
                Spacing = 20
            };
            if(isExerciseEdit)
            {
              
                ToolbarItem cancelItem = new ToolbarItem
                {
                    Text = "Cancel",
                    Icon = Device.OnPlatform("cancel.png", "ic_action_cancel", "Images/cancel.png"),
                    Order = ToolbarItemOrder.Primary
                };

                cancelItem.Clicked += async (sender, args) =>
                    {
                        bool confirm = await this.DisplayAlert("Edit Exercise", "Cancel exercise edit?", "Yes", "No");

                        if (confirm)
                        {
                            await this.Navigation.PopAsync();
                        }
                    };
                this.ToolbarItems.Add(cancelItem);

                ToolbarItem deleteItem = new ToolbarItem
                {
                    Text = "Delete",
                    Icon = Device.OnPlatform("discard.png", "ic_action_discard.png", "Images/delete.png"),
                    Order = ToolbarItemOrder.Primary
                };

                deleteItem.Clicked += async (sender, args) =>
                    {
                        bool confirm = await this.DisplayAlert("Delete Exercise", "Delete this exercise?", "Yes", "No");
                        if (confirm)
                        {
                            exercise.Delete();
                            App.WorkoutCreatorContext.Exercises.Remove(exercise);
                            await this.Navigation.PopAsync();
                        }
                    };

                this.ToolbarItems.Add(deleteItem);
               
            }
            this.BackgroundColor = Color.FromRgb(0, 191, 255);
            this.Padding = new Thickness(10, Device.OnPlatform(20, 0, 0), 10, 0);
            this.Content = labelsStackLayout;
        }
Ejemplo n.º 4
0
        private Task<Frame> GetExerciseFrame(Exercise exercise)
        {
            StackLayout exerciseStackLayout = new StackLayout
            {
                VerticalOptions = LayoutOptions.CenterAndExpand,
                HorizontalOptions = LayoutOptions.CenterAndExpand,
                Orientation = StackOrientation.Vertical,
                WidthRequest = 165,
                HeightRequest = 195

            };

            var exerciseFrame = new Frame
            {
                Content = exerciseStackLayout,
                OutlineColor = Color.Silver,
                //light sky blue
                BackgroundColor = Color.FromRgb(135, 206, 250)
            };

            var tapGestureRecognizer2 = new TapGestureRecognizer();
            tapGestureRecognizer2.Tapped += (s2, e2) =>
            {
                SimpleExercise simpleExercise = new SimpleExercise(exercise);
                this.Navigation.PushAsync(new ExercisePage(simpleExercise));
            };

            exerciseFrame.GestureRecognizers.Add(tapGestureRecognizer2);

            Label exerciseNameLabel = new Label
            {
                Text = exercise.ExerciseName,
                TextColor = Color.White,
				FontAttributes = FontAttributes.Bold,
				FontSize = 20,
                VerticalOptions = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.CenterAndExpand,
                XAlign = TextAlignment.Center
            };

            Image exerciseImage = new Image
            {
                WidthRequest = 100,
                HeightRequest = 100,
                StyleId = exercise.ImageFile
            };
            try
            {

                if (exercise.ImageFile.Trim() != "")
                {
                    String imageBasePath = "http://www.mymobilefit.com/StrengthImages/";
                    String finalImagePath = imageBasePath + exercise.ImageFile.Trim();

                    exerciseImage.Source = new UriImageSource
                    {
                        Uri = new Uri(finalImagePath),
                        CachingEnabled = true,
                        CacheValidity = new TimeSpan(5, 0, 0, 0)
                    };
                }
            }
            catch (Exception e2)
            {
                String exceptionMessage = e2.Message;
            }
            exerciseStackLayout.Children.Add(exerciseNameLabel);
            exerciseStackLayout.Children.Add(exerciseImage);
            return Task<Frame>.FromResult(exerciseFrame);
        }