/// <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> /// Obsluha události při kliknutí na konkrétní blok reprezentující 1 záznam na stránce. /// </summary> /// <param name="sender">Vybraný objekt</param> /// <param name="e">Vyvolaná událost</param> private void GrafZaznam_MouseDown(object sender, MouseButtonEventArgs e) { // Převedení zvoleného objektu zpět na StackPanel StackPanel blok = sender as StackPanel; // Barevné vyznačení vybraného objektu blok.Background = Brushes.OrangeRed; // Zrušení barevného vyznačení předchozího vybraného objektu OznacenyBlok.Background = Controller.BarvaPozadi; // Uložení nově označeného objektu do pomocné proměnné pro možnost následného zrušení jeho označení při označení jiného objektu OznacenyBlok = blok; // Odstranění prefixu "obr" z názvu bloku string IndexZaznamu = blok.Name.Substring(3); // Identifikace záznamu na základě indexu objektu -> Zjištění o jaký záznam se jedná a označení zvoleného záznamu Controller.VyberZaznam(ZaznamyNaJedneStrance[(int)Validace.NactiCislo(IndexZaznamu)]); // V případě dvojkliku se vyvolá okno pro úpravu vybraného záznamu if (e.ClickCount > 1) { // Otevření okna pro úpravu záznamu Controller.OtevriOknoPridatUpravitZaznam(0); // Aktualizace vykreslení seznamu záznamů AktualizujVykreslovanouStranu(); } }
/// <summary> /// Úvodní nastavení okna. /// </summary> /// <param name="PridavaciRezim">TRUE - Režim okna pro přidání nových položek, FALSE - Režim okna pro úpravu stávajících položek</param> public void UvodniNastaveni(bool PridavaciRezim) { // Nastavení názvu okna Title = PridavaciRezim ? "Přidat nové položky" : "Upravit položky"; // Nastavení ikony okna Icon = new BitmapImage(new Uri(Path.Combine(Validace.VratCestuSlozkyAplikace(), "Icons\\NewFile.png"))); // Úvodní inicializace pomocných proměnných Nazev = ""; Popis = ""; Cena = 0; KategoriePolozky = Kategorie.Nevybrano; // Vytvoření instance třídy pro nastavení stylů tlačítek GrafickePrvky Grafika = new GrafickePrvky(); // Nastavení stylu tlačítek Grafika.NastavTlacitkoPRIDAT(PridatButton); Grafika.NastavTlacitkoODEBRAT(OdebratButton); // Nastavení zadávacích polí NazevPolozkyTextBox.Text = Nazev; PopisTextBox.Text = Popis; Controller.NastavKategorieDoComboBoxu(KategorieComboBox); }
/// <summary> /// Událost vyvolaná při pohybu kolečka myši pro celou zobrazenou stránku. /// </summary> /// <param name="sender">Vybraný objekt</param> /// <param name="e">Vyvolaná událost</param> private void Stranka_MouseWheel(object sender, MouseWheelEventArgs e) { // Převedení vybraného objektu zpět na StackPanel StackPanel stranka = sender as StackPanel; // Odstranění prefixu "str" z názvu bloku string IndexStrany = stranka.Name.Substring(3); // Identifikace aktuálně vykreslené strany seznamu na základě čísla uloženého v názvu StackPanelu int AktualniStranka = (int)Validace.NactiCislo(IndexStrany); // Pokud je vykreslena první stránka seznamu a uživatel pohne kolečkem myši nahoru, nic se nestane if (AktualniStranka == 0 && (e.Delta > 0)) { return; } // Pokud je vykreslena první stránka seznamu a uživatel pohne kolečkem myši dolů, // změní se číslo vykreslované stránky a aktualizuje se vykreslení (vykreslí se nová stránka) else if (AktualniStranka == 0 && (e.Delta <= 0)) { CisloStranky++; AktualizujVykreslovanouStranu(); return; } // Pokud je vykreslena poslední stránka seznamu a uživatel pohne kolečkem myši dolů, nic se nestane if ((AktualniStranka + 1) == MaximalniPocetStran && (e.Delta <= 0)) { return; } // Pokud je vykreslena poslední stránka seznamu a uživatel pohne kolečkem myši nahorů, // změní se číslo vykreslované stránky a aktualizuje se vykreslení (vykreslí se nová stránka) else if ((AktualniStranka + 1) == MaximalniPocetStran && (e.Delta > 0)) { CisloStranky--; AktualizujVykreslovanouStranu(); return; } // Pokud uživatel pohnul kolečkem myši nahorů vykreslí se nová stránka v reakci na změnu čísla stránky if (e.Delta > 0) { CisloStranky--; AktualizujVykreslovanouStranu(); return; } // Pokud uživatel pohnul kolečkem myši dolů vykreslí se nová stránka v reakci na změnu čísla stránky else if (e.Delta <= 0) { CisloStranky++; AktualizujVykreslovanouStranu(); return; } }
/// <summary> /// Načtení data do interní proměnné. /// </summary> /// <param name="sender">Zvolený objekt</param> /// <param name="e">Vyvolaná událost</param> private void DatumMAX_DatePicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e) { try { Datum_MAX = Validace.NactiDatum(DatumMAX_DatePicker.SelectedDate); } catch (Exception ex) { MessageBox.Show(ex.Message, "Chyba", MessageBoxButton.OK, MessageBoxImage.Warning); } }
/// <summary> /// Nastavení okna do režimu pro export dat včetně vytvoření potřebných tlačítek. /// </summary> private void NastavStylExport() { Title = "Export dat"; Icon = new BitmapImage(new Uri(Path.Combine(Validace.VratCestuSlozkyAplikace(), "Icons\\Disketa.png"))); Height = 600; Width = 450; // Nastavení tlačítka pro Uložení vybraných záznamů do souboru UlozitButton.Content = "Exportovat data"; UlozitButton.Width = 200; UlozitButton.Height = 50; UlozitButton.FontSize = 24; UlozitButton.Margin = new Thickness(200, 0, 20, 20); UlozitButton.VerticalAlignment = VerticalAlignment.Bottom; UlozitButton.HorizontalAlignment = HorizontalAlignment.Left; UlozitButton.Foreground = Brushes.DarkGreen; UlozitButton.Background = Brushes.Orange; // Nastavení viditelnosti tlačítka pro export dat a přidání události pro možnost ragovat na kliknutí na tlačítko UlozitButton.Visibility = Visibility.Visible; UlozitButton.Click += UlozitButton_Click; // Nastavení tlačítka pro vyhledání záznamů k exportu VyhedatButton.Content = "Vyhledat"; VyhedatButton.Width = 150; VyhedatButton.Height = 50; VyhedatButton.FontSize = 24; VyhedatButton.Margin = new Thickness(20, 0, 20, 20); VyhedatButton.VerticalAlignment = VerticalAlignment.Bottom; VyhedatButton.HorizontalAlignment = HorizontalAlignment.Left; VyhedatButton.Foreground = Brushes.DarkGreen; VyhedatButton.Background = Brushes.CadetBlue; // Nastavení viditelnosti tlačítka pro vyhledání dat a přidání události pro možnost ragovat na kliknutí na tlačítko VyhedatButton.Visibility = Visibility.Visible; VyhedatButton.Click += VyhedatButton_Click; // Nastavení plátna pro vykreslení seznamu vybraných záznamů určených k exportu SeznamZaznamuProExportCanvas.Width = 300; SeznamZaznamuProExportCanvas.Height = 450; SeznamZaznamuProExportCanvas.Margin = new Thickness(20, 20, 0, 0); SeznamZaznamuProExportCanvas.VerticalAlignment = VerticalAlignment.Top; SeznamZaznamuProExportCanvas.HorizontalAlignment = HorizontalAlignment.Left; SeznamZaznamuProExportCanvas.Visibility = Visibility.Visible; SeznamZaznamuProExportCanvas.Background = Controller.BarvaPozadi; // Zrušení nepotřebných komponent PridatNoveZaznamyButton.Visibility = Visibility.Collapsed; AktualizovatZaznamyButton.Visibility = Visibility.Collapsed; // Vykreslení seznamu záznamů určených pro export }
/// <summary> /// Načtení vybraného data do interní proměnné. /// </summary> /// <param name="sender">Zvolený objekt</param> /// <param name="e">Vyvolaná událost</param> private void DatumZaznamuDatePicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e) { try { Datum = Validace.NactiDatum(DatumZaznamuDatePicker.SelectedDate); } catch (Exception ex) { MessageBox.Show(ex.Message, "Chyba", MessageBoxButton.OK, MessageBoxImage.Exclamation); // Zobrazení data z paměti DatumZaznamuDatePicker.SelectedDate = Datum; } }
/// <summary> /// Obsluha udáosti vyvolané při zadávání hodnoty do textového bloku. /// Při zadávání se zadané číslo načítá do interní proměnné pro následné zpracování. /// </summary> /// <param name="sender">Zvolený objekt</param> /// <param name="e">Vyvolaná událost</param> private void PrijemVydajTextBox_TextChanged(object sender, TextChangedEventArgs e) { try { if (PrijemVydajTextBox.Text.Length > 0) { PrijemVydaj_Hodnota = Validace.NactiCislo(PrijemVydajTextBox.Text); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Chyba", MessageBoxButton.OK, MessageBoxImage.Warning); // Zobrazení do boxu načtenou hodnotu (smazání neplatného obsahu) PrijemVydajTextBox.Text = PrijemVydaj_Hodnota.ToString(); } }
/// <summary> /// Konstruktor třídy pro správu okenního formuláře spravující zobrazení statistických grafů. /// </summary> public Statistika_Window() { // Načtení instance kontroléru Controller = SpravceFinanciController.VratInstanciControlleru(); // Inicializace okenního formuláře InitializeComponent(); // Úvodní nastavení okna Title = "Statistika"; Height = 750; Width = 1250; Icon = new BitmapImage(new Uri(System.IO.Path.Combine(Validace.VratCestuSlozkyAplikace(), "Icons\\Statistika.ico"))); // Provedení úvodního nastavení zobrazovacích prvků UvodniNastaveniGrafu(); }
/// <summary> /// Obsluha události při kliknutí na konkrétní blok reprezentující 1 položku na stránce. /// </summary> /// <param name="sender">Vybraný objekt</param> /// <param name="e">Vyvolaná událost</param> private void GrafPolozka_MouseDown(object sender, MouseButtonEventArgs e) { // Převedení zvoleného objektu zpět na StackPanel StackPanel blok = sender as StackPanel; // Barevné vyznačení vybraného objektu blok.Background = Brushes.Orange; // Zrušení barevného vyznačení předchozího vybraného objektu OznacenyBlok.Background = Controller.BarvaPozadi; // Uložení nově označeného objektu do pomocné proměnné pro možnost následného zrušení jeho označení při označení jiného objektu OznacenyBlok = blok; // Odstranění prefixu "obr" z názvu bloku string IndexPolozky = blok.Name.Substring(3); // Identifikace položky na základě indexu objektu -> Zjištění o jakou položku se jedná (přiřazení do VybranaPolozka) Controller.VyberPolozku(PolozkyNaJedneStrance[(int)Validace.NactiCislo(IndexPolozky)]); }
/// <summary> /// Načtení číselné hodnoty do interní proměnné. /// <param name="sender">Zvolený objekt</param> /// <param name="e">Vyvolaná událost</param> private void HodnotaMIN_TextBox_TextChanged(object sender, TextChangedEventArgs e) { try { if (HodnotaMIN_TextBox.Text.Length > 0) { Hodnota_MIN = Validace.NactiCislo(HodnotaMIN_TextBox.Text); } else { Hodnota_MIN = 0; } } catch (Exception ex) { MessageBox.Show(ex.Message, "Chyba", MessageBoxButton.OK, MessageBoxImage.Warning); // Zobrazení hodnoty z interní proměnné (smazání neplatného obsahu) HodnotaMIN_TextBox.Text = Hodnota_MIN.ToString(); } }
/// <summary> /// Načtení číselné hodnoty do interní proměnné. /// </summary> /// <param name="sender">Zvolený objekt</param> /// <param name="e">Vyvolaná událost</param> private void PolozkyMAXTextBox_TextChanged(object sender, TextChangedEventArgs e) { try { if (PolozkyMAXTextBox.Text.Length > 0) { PocetPolozek_MAX = (int)Validace.NactiCislo(PolozkyMAXTextBox.Text); } else { PocetPolozek_MAX = 0; } } catch (Exception ex) { MessageBox.Show(ex.Message, "Chyba", MessageBoxButton.OK, MessageBoxImage.Warning); // Zobrazení hodnoty z interní proměnné (smazání neplatného obsahu) PolozkyMAXTextBox.Text = PocetPolozek_MAX.ToString(); } }
/// <summary> /// Nastavení okna do režimu pro import dat včetně vytvoření potřebných tlačítek. /// </summary> private void NastavStylImport() { // Nastavení okna Title = "Import dat"; Icon = new BitmapImage(new Uri(Path.Combine(Validace.VratCestuSlozkyAplikace(), "Icons\\Disketa_e_sipkou.ico"))); Height = 300; Width = 500; // Nastavení tlačítka pro možnost přidání nových záznamů PridatNoveZaznamyButton.Content = "Přidat nové záznamy"; PridatNoveZaznamyButton.Width = 400; PridatNoveZaznamyButton.Height = 80; PridatNoveZaznamyButton.FontSize = 36; PridatNoveZaznamyButton.Margin = new Thickness(0, 0, 0, 120); PridatNoveZaznamyButton.Foreground = Brushes.DarkBlue; PridatNoveZaznamyButton.Background = Brushes.Pink; // Nastavení viditelnosti tlačítka a přidání události pro možnost ragovat na kliknutí na tlačítko PridatNoveZaznamyButton.Visibility = Visibility.Visible; PridatNoveZaznamyButton.Click += PridatNoveZaznamyButton_Click; // Nastavení tlačítka pro možnost aktualizace stávajících záznamů AktualizovatZaznamyButton.Content = "Přepsat data novými záznamy"; AktualizovatZaznamyButton.Width = 400; AktualizovatZaznamyButton.Height = 80; AktualizovatZaznamyButton.FontSize = 28; AktualizovatZaznamyButton.Margin = new Thickness(0, 120, 0, 0); AktualizovatZaznamyButton.Foreground = Brushes.DarkBlue; AktualizovatZaznamyButton.Background = Brushes.DeepPink; // Nastavení viditelnosti tlačítka a přidání události pro možnost ragovat na kliknutí na tlačítko AktualizovatZaznamyButton.Visibility = Visibility.Visible; AktualizovatZaznamyButton.Click += AktualizovatZaznamyButton_Click; // Zrušení nepotřebných komponent UlozitButton.Visibility = Visibility.Collapsed; VyhedatButton.Visibility = Visibility.Collapsed; SeznamZaznamuProExportCanvas.Visibility = Visibility.Collapsed; }
/// <summary> /// Úvodní nastavení okna v režimu přidání nového záznamu. /// </summary> public void UvodniNastaveniRezimuPridavani() { // Úvodní nastavení okna Title = "Přidat nový záznam"; Icon = new BitmapImage(new Uri(Path.Combine(Validace.VratCestuSlozkyAplikace(), "Icons\\NewFile.png"))); // Úvodní nastavení interních proměnných Nazev = ""; Datum = DateTime.Now.Date; PrijemVydaj_Hodnota = 0; Poznamka = ""; KategorieZaznamu = Kategorie.Nevybrano; // Vytvoření instance třídy pro nastavení stylů tlačítek GrafickePrvky Grafika = new GrafickePrvky(); // Nastavení stylu tlačítek Grafika.NastavTlacitkoULOZIT(UlozitButton); Grafika.NastavTlacitkoPRIDATPOZNAMKU(NastavPoznamkuButton); Grafika.NastavTlacitkoPRIDATPOLOZKY(NastavPolozkuButton); // Nastavení zadávacích polí NastavZadavaciPole(); }
/// <summary> /// Obsluha události při najetí kurzoru myši na daný blok v seznamu. /// </summary> /// <param name="sender">Vybraný objekt</param> /// <param name="e">Vyvolaná udáost</param> private void GrafZaznam_MouseMove(object sender, MouseEventArgs e) { // Ošetření pro případ že infobulbina není určena k vykreslení if (InfoCanvas == null) { return; } // Vykreslení informační bubliny if (InfoVykresleno == 0) { // Převedení zvoleného objektu zpět na StackPanel StackPanel blok = sender as StackPanel; // Odstranění prefixu "obr" z názvu bloku string IndexZaznamu = blok.Name.Substring(3); // Identifikace záznamu na základě indexu objektu (Zjištění o jaký záznam se jedná) a vytvoření informační buliny daného záznamu VykresliInfoBublinu(ZaznamyNaJedneStrance[(int)Validace.NactiCislo(IndexZaznamu)]); // Nastavení příznakové proměnné pro zamezení opětovného vykreslování InfoVykresleno = 1; } }