Beispiel #1
0
 private void LoadPlayer(Pilkarz pilkarz)
 {
     textBoxWEPImie.Text     = pilkarz.Imie;
     textBoxWEPNazwisko.Text = pilkarz.Nazwisko;
     sliderWaga.Value        = pilkarz.Waga;
     sliderWiek.Value        = pilkarz.Wiek;
     buttonEdytuj.IsEnabled  = true;
     buttonUsun.IsEnabled    = true;
     textBoxWEPImie.SetFocus();
 }
Beispiel #2
0
        private void buttonUsun_Click(object sender, RoutedEventArgs e)
        {
            var biezacyPilkarz = new Pilkarz(textBoxWEPImie.Text.Trim(), textBoxWEPNazwisko.Text.Trim(), (uint)sliderWiek.Value, (uint)sliderWaga.Value);
            var dialog         = MessageBox.Show($"{biezacyPilkarz.ToString()} zaostanie usunięty {Environment.NewLine} Jesteś tego pewien?", "Uwaga", MessageBoxButton.YesNo);

            if (dialog == MessageBoxResult.Yes)
            {
                listBoxPilkarze.Items.RemoveAt(listBoxPilkarze.SelectedIndex);
            }
            Clear();
            listBoxPilkarze.SelectedIndex = -1;
        }
        private void buttonEdytuj_Click(object sender, RoutedEventArgs e)
        {
            // operator logiczny & a nie podwójny operator warunkowy &&
            //sprawdź dlaczego

            /*
             * Odpowiedź:
             *  Użycie operatora logicznego & pozwala na to, żeby i jedna i druga strona
             * wyrażenia logicznego zostały sprawdzone (przykładowo: jeśli po obu stronach wywoływane są metody
             * to w przypadku gdyby lewa strona zwróciła fałsz to sprawdzenie prawej strony (a co za tym idzie wywołanie
             * metody z prawej strony) i tak się odbędzie).
             *  Gdybyśmy natomiast użyli operatora && to w chwili gdy lewa strona zwróci fałsz sprawdzanie warunku kończy się,
             * a więc nie dochodzi wogóle do sprawdzenia wyniku strony prawej. */
            if (IsNotEmpty(textBoxWEPImie) & IsNotEmpty(textBoxWEPNazwisko))
            {
                var biezacyPilkarz     = new Pilkarz(textBoxWEPImie.Text.Trim(), textBoxWEPNazwisko.Text.Trim(), (uint)sliderWiek.Value, (uint)sliderWaga.Value);
                var czyJuzJestNaLiscie = false;
                foreach (var p in listBoxPilkarze.Items)
                {
                    var pilkarz = p as Pilkarz;
                    if (pilkarz.isTheSame(biezacyPilkarz))
                    {
                        czyJuzJestNaLiscie = true;
                        break;
                    }
                }
                if (!czyJuzJestNaLiscie)
                {
                    var dialogResult = MessageBox.Show($"Czy na pewno chcesz zmienić dane  {Environment.NewLine} {listBoxPilkarze.SelectedItem}?", "Edycja", MessageBoxButton.YesNo);

                    if (dialogResult == MessageBoxResult.Yes)
                    {
                        //zamiana refernecji do obiektu piłkarza edytowanego
                        //zmień implementację tak aby zmieniać stan obiektu a nie podmieniać referencję
                        Pilkarz edytowanyPilkarz = listBoxPilkarze.Items[listBoxPilkarze.SelectedIndex] as Pilkarz;
                        edytowanyPilkarz.zmianaPilkarz(biezacyPilkarz);

                        listBoxPilkarze.Items.Refresh();
                    }
                    Clear();
                    listBoxPilkarze.SelectedIndex = -1;
                }
                else
                {
                    MessageBox.Show($"{biezacyPilkarz.ToString()} już jest na liście.", "Uwaga");
                }
            }
        }
Beispiel #4
0
        //nadpisujemy plik archiwum przy zamknięciu okna
        private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            int n = listBoxPilkarze.Items.Count;

            Pilkarz[] pilkarze = null;
            if (n > 0)
            {
                pilkarze = new Pilkarz[n];
                int index = 0;
                foreach (var o in listBoxPilkarze.Items)
                {
                    pilkarze[index++] = o as Pilkarz;
                }
                Archiwizacja.ZapisPilkarzyDoPliku(plikArchiwizacji, pilkarze);
            }
        }
Beispiel #5
0
        private void buttonUsun_Click(object sender, RoutedEventArgs e)
        {
            //zaimplementuj mechanizm usuwania zaznaczonej pozycji na liście
            //zapytaj czy napewno usunąć

            var biezacyPilkarz = new Pilkarz(textBoxWEPImie.Text.Trim(), textBoxWEPNazwisko.Text.Trim(), (uint)sliderWiek.Value, (uint)sliderWaga.Value);

            var dialogResult = MessageBox.Show($"Czy na pewno chcesz usunąć dane  {Environment.NewLine} {listBoxPilkarze.SelectedItem}?", "Usuwanie", MessageBoxButton.YesNo);

            if (dialogResult == MessageBoxResult.Yes)
            {
                listBoxPilkarze.Items.Remove(listBoxPilkarze.Items[listBoxPilkarze.SelectedIndex]);
            }
            Clear();
            listBoxPilkarze.SelectedIndex = -1;
        }
        private void buttonEdytuj_Click(object sender, RoutedEventArgs e)
        {
            // operator logiczny & a nie podwójny operator warunkowy &&
            //sprawdź dlaczego
            if (IsNotEmpty(textBoxWEPImie) & IsNotEmpty(textBoxWEPNazwisko))
            {
                var biezacyPilkarz     = new Pilkarz(textBoxWEPImie.Text.Trim(), textBoxWEPNazwisko.Text.Trim(), (uint)sliderWiek.Value, (uint)sliderWaga.Value);
                var czyJuzJestNaLiscie = false;
                foreach (var p in listBoxPilkarze.Items)
                {
                    var pilkarz = p as Pilkarz;
                    if (pilkarz.isTheSame(biezacyPilkarz))
                    {
                        czyJuzJestNaLiscie = true;
                        break;
                    }
                }
                if (!czyJuzJestNaLiscie)
                {
                    var dialogResult = MessageBox.Show($"Czy na pewno chcesz zmienić dane  {Environment.NewLine} {listBoxPilkarze.SelectedItem}?", "Edycja", MessageBoxButton.YesNo);

                    if (dialogResult == MessageBoxResult.Yes)
                    {
                        //zamiana refernecji do obiektu piłkarza edytowanego
                        //zmień implementację tak aby zmieniać stan obiektu a nie podmieniać referencję
                        //listBoxPilkarze.Items[listBoxPilkarze.SelectedIndex] = biezacyPilkarz;

                        Pilkarz pilkarz = (Pilkarz)listBoxPilkarze.SelectedItem;
                        pilkarz.Imie     = biezacyPilkarz.Imie;
                        pilkarz.Nazwisko = biezacyPilkarz.Nazwisko;
                        pilkarz.Waga     = biezacyPilkarz.Waga;
                        pilkarz.Wiek     = biezacyPilkarz.Wiek;
                        listBoxPilkarze.Items.Refresh();
                    }
                    Clear();
                    listBoxPilkarze.SelectedIndex = -1;
                }
                else
                {
                    MessageBox.Show($"{biezacyPilkarz.ToString()} już jest na liście.", "Uwaga");
                }
            }
        }
 public static Pilkarz[] CzytajPilkarzyZPliku(string plik)
 {
     Pilkarz[] pilkarze = null;
     if (File.Exists(plik))
     {
         var sPilkarze = File.ReadAllLines(plik);
         var n         = sPilkarze.Length;
         if (n > 0)
         {
             pilkarze = new Pilkarz[n];
             for (int i = 0; i < n; i++)
             {
                 pilkarze[i] = Pilkarz.CreateFromString(sPilkarze[i]);
             }
             return(pilkarze);
         }
     }
     return(pilkarze);
 }
Beispiel #8
0
 //sprawdza czy obiekt ma ten sam stan co bieżąca instancja
 public bool isTheSame(Pilkarz pilkarz)
 {
     if (pilkarz.Nazwisko != Nazwisko)
     {
         return(false);
     }
     if (pilkarz.Imie != Imie)
     {
         return(false);
     }
     if (pilkarz.Wiek != Wiek)
     {
         return(false);
     }
     if (pilkarz.Waga != Waga)
     {
         return(false);
     }
     return(true);
 }
        private void buttonEdytuj_Click(object sender, RoutedEventArgs e)
        {
            // operator logiczny & a nie podwójny operator warunkowy &&
            // Przy zastosowaniu pojedyńczego operatora oba warunki zostaną sprawdzone. tutaj w kodzie wywoływane są funkcję, zatem by obie się wywołały używamy pojedyńczego &
            //sprawdź dlaczego
            if (IsNotEmpty(textBoxWEPImie) & IsNotEmpty(textBoxWEPNazwisko))
            {
                var     biezacyPilkarz     = new Pilkarz(textBoxWEPImie.Text.Trim(), textBoxWEPNazwisko.Text.Trim(), (uint)sliderWiek.Value, (uint)sliderWaga.Value);
                var     czyJuzJestNaLiscie = false;
                Pilkarz selectedPilkarz;
                foreach (var p in listBoxPilkarze.Items)
                {
                    var pilkarz = p as Pilkarz;
                    if (pilkarz.isTheSame(biezacyPilkarz))
                    {
                        selectedPilkarz    = pilkarz;
                        czyJuzJestNaLiscie = true;
                        break;
                    }
                }
                if (!czyJuzJestNaLiscie)
                {
                    var dialogResult = MessageBox.Show($"Czy na pewno chcesz zmienić dane  {Environment.NewLine} {listBoxPilkarze.SelectedItem}?", "Edycja", MessageBoxButton.YesNo);

                    if (dialogResult == MessageBoxResult.Yes)
                    {
                        //zamiana refernecji do obiektu piłkarza edytowanego
                        //zmień implementację tak aby zmieniać stan obiektu a nie podmieniać referencję
                        Pilkarz nowaReferencja = listBoxPilkarze.Items[listBoxPilkarze.SelectedIndex] as Pilkarz;
                        nowaReferencja.footBallerReplacer(textBoxWEPImie.Text.Trim(), textBoxWEPNazwisko.Text.Trim(), (uint)sliderWiek.Value, (uint)sliderWaga.Value);
                        listBoxPilkarze.Items.Refresh();
                    }
                    Clear();
                    listBoxPilkarze.SelectedIndex = -1;
                }
                else
                {
                    MessageBox.Show($"{biezacyPilkarz.ToString()} już jest na liście.", "Uwaga");
                }
            }
        }
Beispiel #10
0
        private void Reload()
        {
            int n = listBoxPilkarze.Items.Count;

            Pilkarz[] pilkarze = null;
            if (n > 0)
            {
                pilkarze = new Pilkarz[n];
                int index = 0;
                foreach (var o in listBoxPilkarze.Items)
                {
                    pilkarze[index++] = o as Pilkarz;
                }
            }
            listBoxPilkarze.Items.Clear();
            if (pilkarze != null)
            {
                foreach (var p in pilkarze)
                {
                    listBoxPilkarze.Items.Add(p);
                }
            }
        }
Beispiel #11
0
        private void buttonEdytuj_Click(object sender, RoutedEventArgs e)
        {
            // operator logiczny & a nie podwójny operator warunkowy &&
            //sprawdź dlaczego
            //dzięki użyciu pojedynczego operatora "&" mamy pewność, że obydwa warunki zostaną sprawdzone
            //nawet jeżeli pierwszy warunek bedzie równy "False".
            if (IsNotEmpty(textBoxWEPImie) & IsNotEmpty(textBoxWEPNazwisko))
            {
                var biezacyPilkarz     = new Pilkarz(textBoxWEPImie.Text.Trim(), textBoxWEPNazwisko.Text.Trim(), (uint)sliderWiek.Value, (uint)sliderWaga.Value);
                var czyJuzJestNaLiscie = false;
                foreach (var p in listBoxPilkarze.Items)
                {
                    var pilkarz = p as Pilkarz;
                    if (pilkarz.isTheSame(biezacyPilkarz))
                    {
                        czyJuzJestNaLiscie = true;
                        break;
                    }
                }
                if (!czyJuzJestNaLiscie)
                {
                    var dialogResult = MessageBox.Show($"Czy na pewno chcesz zmienić dane  {Environment.NewLine} {listBoxPilkarze.SelectedItem}?", "Edycja", MessageBoxButton.YesNo);

                    if (dialogResult == MessageBoxResult.Yes)
                    {
                        ((Pilkarz)listBoxPilkarze.SelectedItem).ChangeData(biezacyPilkarz);
                        Reload();
                    }
                    Clear();
                    listBoxPilkarze.SelectedIndex = -1;
                }
                else
                {
                    MessageBox.Show($"{biezacyPilkarz.ToString()} już jest na liście.", "Uwaga");
                }
            }
        }