コード例 #1
0
        private void ProcessMajorToppingSelection(ToppingDisplayItem majorSelection)
        {
            if (majorSelection.ListItemIsSelected)
            {
                majorSelection.SelectionColor = Xamarin.Forms.Color.CornflowerBlue;
                if (majorSelection.ButtonASelected || majorSelection.ButtonBSelected)
                {
                    ProcessHalfMajorSelectionOfSide(majorSelection);
                }
                else
                {
                    majorSelection.ButtonWSelected = true;
                    ThisPizza.MajorMamaInfo        = MajorOrMama.Major;
                    ThisPizza.PopulateDisplayName();  //Updates to show MAJOR
                    SelectMajorToppings();
                    ThisPizza.Toppings.AddMajorToppings();
                }
            }
            else
            {
                majorSelection.SelectionColor  = Xamarin.Forms.Color.Black;
                majorSelection.ButtonWSelected = false;
                majorSelection.ButtonASelected = false;
                majorSelection.ButtonBSelected = false;
                ThisPizza.MajorMamaInfo        = MajorOrMama.Neither;
                ThisPizza.PopulateDisplayName();  //Updates to remove MAJOR
                ThisPizza.Toppings.RemoveToppings(new List <ToppingName>
                {
                    ToppingName.Mushrooms,
                    ToppingName.BlackOlives,
                    ToppingName.GreenPeppers,
                    ToppingName.Onion,
                    ToppingName.Pepperoni,
                    ToppingName.Sausage
                });

                foreach (var toppingSelection in ToppingSelectionsList)
                {
                    if (toppingSelection.ListTopping.ToppingName == ToppingName.Mushrooms ||
                        toppingSelection.ListTopping.ToppingName == ToppingName.GreenPeppers ||
                        toppingSelection.ListTopping.ToppingName == ToppingName.Onion ||
                        toppingSelection.ListTopping.ToppingName == ToppingName.Pepperoni ||
                        toppingSelection.ListTopping.ToppingName == ToppingName.Sausage ||
                        toppingSelection.ListTopping.ToppingName == ToppingName.BlackOlives)
                    {
                        toppingSelection.ButtonWSelected    = false;
                        toppingSelection.ButtonASelected    = false;
                        toppingSelection.ButtonBSelected    = false;
                        toppingSelection.ListItemIsSelected = false;
                        toppingSelection.SelectionColor     = Xamarin.Forms.Color.Black;
                    }
                }
            }
        }
コード例 #2
0
        public void SelectTopping(int selectionIndex)
        {
            //Can't change ListView directly - must change underlying data.  Get this data by the index.
            ToppingDisplayItem thisSelection = ToppingSelectionsList[selectionIndex];

            if (!ToppingFooterPageModel.ExtraToppingSelected ||
                (ToppingFooterPageModel.ExtraToppingSelected && !thisSelection.ListItemIsSelected))
            {
                thisSelection.ListItemIsSelected = !thisSelection.ListItemIsSelected;  //toggle topping selection.
            }

            thisSelection.ListTopping.ToppingModifier = ToppingFooterPageModel.GetToppingModifierType();

            if (thisSelection.ListTopping.ToppingName == ToppingName.Major)
            {
                ProcessMajorToppingSelection(thisSelection);
            }
            //else if (thisSelection.ListTopping.ToppingName == ToppingName.HalfMajor)
            //{
            //    ProcessHalfMajorToppingSelection(thisSelection);
            //}
            else
            {
                if (ToppingFooterPageModel.ExtraToppingSelected)
                {
                    if (thisSelection.ListTopping.Count == 0)
                    {
                        thisSelection.ListTopping.Count = 1;
                    }
                    thisSelection.ListTopping.Count++;
                }
                else if (ToppingFooterPageModel.NoToppingSelected)
                {
                    thisPizza.Toppings.RemoveTopping(thisSelection.ListTopping.ToppingName);
                }

                if (thisSelection.ListItemIsSelected)
                {
                    if (thisSelection.ListTopping.ToppingName == ToppingName.SatchPanSlice)
                    {
                        ThisPizza.ChangePizzaToDeep();
                        OnChangeHeadingPizzaName();
                    }
                    else if (ToppingFooterPageModel.ExtraToppingSelected &&
                             thisSelection.ListTopping.Count > 1 &&
                             ThisPizza.Toppings.IsToppingAlreadyAdded(thisSelection.ListTopping.ToppingName))
                    {
                        ThisPizza.Toppings.UpdateToppingsTotal();
                        ThisPizza.UpdateItemTotal();
                        thisSelection.SelectionColor  = Xamarin.Forms.Color.CornflowerBlue;
                        thisSelection.ButtonWSelected = true;
                    }
                    else
                    {
                        thisSelection.ListTopping.SequenceSelected = ThisPizza.Toppings.CurrentToppings.Count + 1;
                        ThisPizza.Toppings.AddTopping(thisSelection.ListTopping);
                        ThisPizza.UpdateItemTotal();
                        thisSelection.SelectionColor  = Xamarin.Forms.Color.CornflowerBlue;
                        thisSelection.ButtonWSelected = true;
                    }
                }
                else
                {
                    if (thisSelection.ListTopping.ToppingName == ToppingName.SatchPanSlice &&
                        ThisPizza.PizzaType == PizzaType.PanSlice)
                    {
                        ThisPizza.ChangePizzaSliceFromPanToThin();
                        OnChangeHeadingPizzaName();
                    }
                    thisSelection.ListTopping.SequenceSelected = 0;
                    thisSelection.ListTopping.ToppingModifier  = ToppingModifierType.None;
                    thisSelection.ListTopping.Count            = 0;
                    ThisPizza.Toppings.RemoveTopping(thisSelection.ListTopping.ToppingName);
                    thisSelection.SelectionColor  = Xamarin.Forms.Color.Black;
                    thisSelection.ButtonASelected = false;
                    thisSelection.ButtonBSelected = false;
                    thisSelection.ButtonWSelected = false;
                }

                //Modifier buttons only work if selected before the topping is selected.  At this point,
                //all should be reset back to black/unselected.
                ToppingFooterPageModel.ExtraToppingSelected  = false;
                ToppingFooterPageModel.LiteToppingSelected   = false;
                ToppingFooterPageModel.NoToppingSelected     = false;
                ToppingFooterPageModel.OnSideToppingSelected = false;
            }

            //Can't remember why I might need this....
            //if (thisSelection.ListTopping.ToppingName == ToppingName.Cheese)
            //{
            //    if (App.AllToppings.ContainsKey(ToppingName.NoCheese))
            //    {
            //        thisPizza.Toppings.AddTopping(App.AllToppings[ToppingName.NoCheese]);
            //    }
            //}
            //else if (thisSelection.ListTopping.ToppingName == ToppingName.RicottaCalzone ||
            //    thisSelection.ListTopping.ToppingName == ToppingName.Ricotta)
            //{
            //    if (App.AllToppings.ContainsKey(ToppingName.NoRicotta))
            //    {
            //        thisPizza.Toppings.AddTopping(App.AllToppings[ToppingName.NoRicotta]);
            //    }
            //}
        }