Beispiel #1
0
        private void RefreshControlsMeal()
        {
            splitContainer3.Panel2.Controls.Clear();

            MealsCount = 0;
            int index = List_Indexator.ReturnTodaysMealIndex(ActiveProfile.List_Of_meals);

            // int index = ActiveProfile.List_Of_meals.FindIndex(x => x.Date.Date == DateTime.Today);
            foreach (Meal meal in ActiveProfile.List_Of_meals[index].Meals)
            {
                MealPanel_Control p = new MealPanel_Control(meal.MealName);
                foreach (Product_Mass product in meal.Products)
                {
                    ProductInMeal_Control t = new ProductInMeal_Control(product);
                    p.AddProductToMealControl(t);
                    t.RemoveProduct_Button.Click += new EventHandler(RemoveControlMeal);
                }
                p.Location = new Point(50, 15 + (MealsCount * 47));
                MealsCount++;
                splitContainer3.Panel2.Controls.Add(p);
                p.BringToFront();
                p.Expand_Button.Click += new EventHandler(ExpandMeal);
            }
        }
Beispiel #2
0
        private void ExpandMeal(object sender, EventArgs e)
        {
            MealPanel_Control prevPanel = new MealPanel_Control();

            bool IsSearched               = false;
            bool IsSearchedFirst          = false;
            List <MealPanel_Control> list = new List <MealPanel_Control>();

            foreach (MealPanel_Control mp in splitContainer3.Panel2.Controls)
            {
                list.Add(mp);
            }
            IEnumerable <MealPanel_Control> panels = list.OrderBy(panel => panel.Top); // sortowanie wedlug polozenia

            list = panels.ToList();

            foreach (MealPanel_Control mp in list)
            {
                if ((sender as MetroButton).Parent.Parent.Parent == mp)
                { // znaleziony klikniety panel
                    prevPanel  = mp;
                    IsSearched = true;
                    int index = list.IndexOf(mp) + 1;
                    if (index < list.Count) // jesli nie jest to ostatni panel
                    {
                        if (mp.ISCollapsed)
                        {
                            list[index].Top = mp.Top + 47;
                        }
                        else
                        {
                            list[index].Top = mp.Bottom;
                        }
                        prevPanel       = list[index];
                        IsSearchedFirst = true;
                        continue;
                    }
                    else
                    {
                        continue;
                    }
                }
                if (IsSearchedFirst)   // pominiecie pierwszego panelu
                {
                    IsSearchedFirst = false;
                    continue;
                }
                if (IsSearched)  //reszta paneli
                {
                    if (prevPanel.ISCollapsed)
                    {
                        mp.Top = prevPanel.Top + 47;
                    }
                    else
                    {
                        mp.Top = prevPanel.Bottom;
                    }
                    mp.BringToFront();
                    prevPanel = mp;
                }
            }
        }