/// <summary> /// Úvodní nastavení okna v režimu úpravy existujícího záznamu. /// </summary> /// <param name="zaznam">Záznam určený k úpravě</param> public void UvodniNastaveniRezimuUpravovani(Zaznam zaznam) { // Úvodní nastavení okna Title = "Úprava existujícího záznamu"; Icon = new BitmapImage(new Uri(Path.Combine(Validace.VratCestuSlozkyAplikace(), "Icons\\Disketa.png"))); // Úvodní nastavení interních proměnných Nazev = zaznam.Nazev; Datum = zaznam.Datum; PrijemNeboVydaj = zaznam.PrijemNeboVydaj; PrijemVydaj_Hodnota = zaznam.Hodnota_PrijemVydaj; Poznamka = zaznam.Poznamka; KategorieZaznamu = zaznam.kategorie; // Vytvoření instance třídy pro nastavení stylů tlačítek GrafickePrvky Grafika = new GrafickePrvky(); // Nastavení stylu tlačítek Grafika.NastavTlacitkoULOZIT(UlozitButton); Grafika.NastavTlacitkoUPRAVITPOZNAMKU(NastavPoznamkuButton); Grafika.NastavTlacitkoUPRAVITPOLOZKY(NastavPolozkuButton); // Nastavení zadávacích polí NastavZadavaciPole(); // Nastavení zobrazení kategorie a hodnoty záznamu KategorieComboBox.SelectedIndex = (int)KategorieZaznamu - 1; PrijemVydajComboBox.SelectedIndex = (int)PrijemNeboVydaj; PrijemVydajTextBox.Text = PrijemVydaj_Hodnota.ToString(); }
/// <summary> /// Metoda pro kontrolu zda v kolekci uživatele již existuje stejný záznam jako záznam předaný v parametru. /// </summary> /// <param name="zaznam">Záznam ke kontrole</param> /// <returns>True - záznam již existuje, False - záznam neexistuje</returns> public bool KontrolaExistujicihoZaznamu(Zaznam zaznam) { // Čítač podobností při porovnání záznamů int citac = 0; // Postupné projití všech záznamů v kolekci přihlášeného uživatele pro kontrolu existujícího záznamu foreach (Zaznam InterniZaznam in KolekceDatPrihlasenehoUzivatele) { // Kontrola názvu if (zaznam.Nazev == InterniZaznam.Nazev) { citac++; } // Kontrola data if (zaznam.Datum == InterniZaznam.Datum) { citac++; } // Kontrola hodnoty if (zaznam.Hodnota_PrijemVydaj == InterniZaznam.Hodnota_PrijemVydaj) { citac++; } // Kontrola poznámky if (zaznam.Poznamka == InterniZaznam.Poznamka) { citac++; } // Kontrola kategorie if (zaznam.kategorie == InterniZaznam.kategorie) { citac++; } // Kontrola zda se jedná o příjem či výdaj if (zaznam.PrijemNeboVydaj == InterniZaznam.PrijemNeboVydaj) { citac++; } // Pokud jsou všechny parametry stejné, nastaví se návratová hodnota na TRUE a ukončí se porovnávání. // Pokud se nějaká hodnota liší, čítač se vynuluje a pokračuje se v porovnávání dalšího záznamu. if (citac > 5) { return(true); } else { citac = 0; } } // Pokud předaný záznam v kolekci záznamů uživatele neexistuje nastaví se návratová hodnota na false return(false); }
/// <summary> /// Smazání zvoleného záznamu z kolekce záznamů přihlášeného uživatele. /// </summary> /// <param name="zaznam">Záznam, který bude smazán</param> public void SmazatZaznam(Zaznam zaznam) { KolekceDatPrihlasenehoUzivatele.Remove(zaznam); }
/// <summary> /// Metoda pro vykreslení informační bubliny předaného záznamu na plátno uložené v interní proměnné třídy. /// Plátno pro vykreslení je předáváno v konstruktoru této třídy. /// </summary> /// <param name="zaznam">Záznam pro vykreslení</param> private void VykresliInfoBublinu(Zaznam zaznam) { // Smazání předchozího obsahu this.InfoCanvas.Children.Clear(); // Vytvoření textového řetězce obsahujícího názvy všech položek daného záznamu string SeznamPolozek = ""; foreach (Polozka polozka in zaznam.SeznamPolozek) { SeznamPolozek += polozka.Nazev + "; "; } // Odstranění posledních 2 znaků (; ) z textového řetězce if (SeznamPolozek.Length > 0) { SeznamPolozek = SeznamPolozek.Remove(SeznamPolozek.Length - 2); } // Vytvoření obdélníku na pozadí pro vytvoření efektu okrajů Rectangle okraje = new Rectangle { Fill = Brushes.DarkBlue, Width = InfoCanvas.Width, Height = InfoCanvas.Height }; // Vytvoření pozadí informační bubliny Rectangle pozadi = new Rectangle { Fill = Brushes.Ivory, Width = InfoCanvas.Width - 2, Height = InfoCanvas.Height - 2 }; // Podtržení Rectangle deliciCara = new Rectangle { Width = InfoCanvas.Width, Height = 1, Fill = Brushes.DarkBlue }; // Podtržení Rectangle deliciCara2 = new Rectangle { Width = InfoCanvas.Width, Height = 1, Fill = Brushes.DarkBlue }; // Kategorie záznamu Label kategorie = new Label { Content = "Kategorie: " + Zaznam.NazvyKategorii[(int)zaznam.kategorie], FontSize = 14, HorizontalContentAlignment = HorizontalAlignment.Left }; // Oddělení popisků Rectangle oddeleni = new Rectangle { Width = 1, Height = 30, HorizontalAlignment = HorizontalAlignment.Center, Fill = Brushes.DarkBlue }; // Datum vytvoření záznamu Label datum = new Label { Content = "Přidáno dne: " + zaznam.DatumZapisu.Date.ToString("dd.MM.yyyy"), FontSize = 14 }; // Poznámka záznamu TextBox poznamka = new TextBox { Text = zaznam.Poznamka, FontSize = 12, Background = Brushes.Ivory, TextWrapping = TextWrapping.Wrap, Width = InfoCanvas.Width - 2, Height = Math.Ceiling((InfoCanvas.Height - 34) / 2) }; // Vypsání názvů položek TextBox polozky = new TextBox { Text = SeznamPolozek, FontSize = 12, Background = Brushes.Ivory, TextWrapping = TextWrapping.Wrap, Width = InfoCanvas.Width - 2, Height = Math.Ceiling((InfoCanvas.Height - 34) / 2) }; // Pokud poznámka neobsahuje text, zobrazí se informativní popisek if (poznamka.Text.Length == 0) { poznamka.Text = "Žádná poznámka"; } // Pokud záznam neobsahuje žádné položky, zobrazí se informační popisek okna pro výpis položek if (polozky.Text.Length == 0) { polozky.Text = "Záznam neobsahuje žádné položky"; } // Přidání okrajů na plátno InfoCanvas.Children.Add(okraje); Canvas.SetLeft(okraje, 0); Canvas.SetTop(okraje, 0); // Přidání pozadí bubliny na plátno InfoCanvas.Children.Add(pozadi); Canvas.SetLeft(pozadi, 1); Canvas.SetTop(pozadi, 1); // Vypsání kategorie na plátno InfoCanvas.Children.Add(kategorie); Canvas.SetLeft(kategorie, 1); Canvas.SetTop(kategorie, 1); // Vypsání data úpravy na plátno InfoCanvas.Children.Add(datum); Canvas.SetRight(datum, 3); Canvas.SetTop(datum, 1); // Přidání oddělovací přepážky na plátno InfoCanvas.Children.Add(oddeleni); Canvas.SetLeft(oddeleni, InfoCanvas.Width / 2); Canvas.SetTop(oddeleni, 1); // Přidání dělící čáry na plátno InfoCanvas.Children.Add(deliciCara); Canvas.SetLeft(deliciCara, 0); Canvas.SetTop(deliciCara, 30); // Vypsání textu poznámky InfoCanvas.Children.Add(poznamka); Canvas.SetLeft(poznamka, 1); Canvas.SetTop(poznamka, 31); // Přidání dělící čáry na plátno InfoCanvas.Children.Add(deliciCara2); Canvas.SetLeft(deliciCara2, 0); Canvas.SetTop(deliciCara2, (31 + poznamka.Height)); // Vypsání názvů položek InfoCanvas.Children.Add(polozky); Canvas.SetLeft(polozky, 1); Canvas.SetTop(polozky, (32 + poznamka.Height)); }