package biblioteka_gui;

import javax.swing.*;

import java.awt.event.*;
//import biblioteka.*;

/**
 * Klasa dziedziczaca po klasie JFrame, implementujaca interfejs ActionListener
 * <br>Wyswietla okno sluzace do przeszukiwania bazy czytelnikow wzgledem zadanego kryterium
 * @author w21826
 *
 */
public class JFrSzukajCzytelnika extends JFrame implements ActionListener
{
	/**
	 * Etykieta wyswietlajaca tekst "Wybierz kryterium szukania i wpisz poszukiwany tekst"
	 */
	JLabel etykieta;
	/**
	 * Pole tekstowe okreslajace imie czytelnikow, ktorych szukamy
	 */
	JTextField imie;
	/**
	 * Pole tekstowe okreslajace nazwisko czytelnikow, ktorych szukamy
	 */
	JTextField nazwisko;
	/**
	 * Pole tekstowe okreslajace Id czytelnika, ktorego szukamy
	 */
	JTextField id_czytelnika;
	/**
	 * Pole tekstowe okreslajace ulice przy ktorej mieszkaja czytelnicy, ktorych szukamy
	 */
	JTextField ulica;
	/**
	 * Pole tekstowe okreslajace numer domu w ktorym mieszkaja czytelnicy, ktorych szukamy
	 */
	JTextField nr_domu;
	/**
	 * Pole tekstowe okreslajace numer mieszkania w ktorym mieszkaja czytelnicy, ktorych szukamy
	 */
	JTextField nr_mieszkania;
	/**
	 * Pole tekstowe okreslajace kod pocztowy miasta w ktorym mieszkaja czytelnicy, ktorych szukamy
	 */
	JTextField kod_pocztowy;
	/**
	 * Pole tekstowe okreslajace miasto w ktorym mieszkaja czytelnicy, ktorych chcemy znalezc
	 */
	JTextField miasto;
	/**
	 * Przycisk, ktorego wcisniecie powoduje przeszukanie bazy czytelnikow pod wzgledem zadanego kryterium
	 */	
	JButton przycisk_szukaj;
	/**
	 * Przycisk, ktorego wcisniecie powoduje anulowanie operacji szukania czytelnika oraz zamyka okno
	 */	
	JButton przycisk_anuluj;
	/**
	 * Przelacznik, jesli jest wybrany, kryterium szukania bedzie imie czytelnika
	 */
	JRadioButton kryterium_imie;
	/**
	 * Przelacznik, jesli jest wybrany, kryterium szukania bedzie nazwisko czytelnika
	 */
	JRadioButton kryterium_nazwisko;
	/**
	 * Przelacznik, jesli jest wybrany, kryterium szukania bedzie Id czytelnika czytelnika
	 */
	JRadioButton kryterium_id_czytelnika;
	/**
	 * Przelacznik, jesli jest wybrany, kryterium szukania bedzie ulica przy ktorej czytelnik mieszka
	 */
	JRadioButton kryterium_ulica;
	/**
	 * Przelacznik, jesli jest wybrany, kryterium szukania bedzie numer domu w ktorym mieszka czytelnik
	 */
	JRadioButton kryterium_nr_domu;
	/**
	 * Przelacznik, jesli jest wybrany, kryterium szukania numer mieszkania w ktorym mieszka czytelnik
	 */
	JRadioButton kryterium_nr_mieszkania;
	/**
	 * Przelacznik, jesli jest wybrany, kryterium szukania bedzie kod pocztowy miasta w ktorym mieszka czytelnik
	 */
	JRadioButton kryterium_kod;
	/**
	 * Przelacznik, jesli jest wybrany, kryterium szukania bedzie miasto w ktorym mieszka czytelnik
	 */
	JRadioButton kryterium_miasto;
	/**
	 * Grupa przelacznikow, dzieki niej tylko jeden moze byc w danej chwili zaznaczony
	 */
	ButtonGroup group;
	
	/**
	 * Konstruktor bezparametrowy tworzacy nowe okno o tytule "Szukaj czytelnika"
	 * definiujacy rozmiar, polozenie, widocznosc okna i rozmieszczajacy etykiety, pola tekstowe oraz przyciski
	 *
	 */
	   public JFrSzukajCzytelnika()
	   {
			this.setLayout(null);
			this.setTitle("Szukaj czytelnika");

			JFrGlowne.log.info("Szukanie czytelnika");
			etykieta = new JLabel("Wybierz kryterium szukania i wpisz poszukiwany tekst");
			etykieta.setSize(300,30);
			etykieta.setLocation(20,20);
			this.add(etykieta);
			kryterium_imie = new JRadioButton("Imię");
			kryterium_imie.setSize(100,30);
			kryterium_imie.setLocation(20,50);
			this.add(kryterium_imie);
			kryterium_imie.addActionListener(this);
			imie = new JTextField();
			imie.setSize(100,30);
			imie.setLocation(120,50);
			this.add(imie);
			kryterium_nazwisko = new JRadioButton("Nazwisko");
			kryterium_nazwisko.setSize(100,30);
			kryterium_nazwisko.setLocation(220,50);
			this.add(kryterium_nazwisko);
			kryterium_nazwisko.addActionListener(this);
			nazwisko = new JTextField();
			nazwisko.setSize(100,30);
			nazwisko.setLocation(320,50);
			this.add(nazwisko);
			kryterium_id_czytelnika = new JRadioButton("Id czytelnika");
			kryterium_id_czytelnika.setSize(100,30);
			kryterium_id_czytelnika.setLocation(420,50);
			this.add(kryterium_id_czytelnika);
			kryterium_id_czytelnika.addActionListener(this);
			id_czytelnika = new JTextField();
			id_czytelnika.setSize(100,30);
			id_czytelnika.setLocation(520,50);
			this.add(id_czytelnika);
			kryterium_ulica = new JRadioButton("Ulica");
			kryterium_ulica.setSize(100,30);
			kryterium_ulica.setLocation(20,80);
			this.add(kryterium_ulica);
			kryterium_ulica.addActionListener(this);
			ulica = new JTextField();
			ulica.setSize(150,30);
			ulica.setLocation(120,80);
			this.add(ulica);
			kryterium_nr_domu = new JRadioButton("Nr domu");
			kryterium_nr_domu.setSize(100,30);
			kryterium_nr_domu.setLocation(270,80);
			this.add(kryterium_nr_domu);
			kryterium_nr_domu.addActionListener(this);
			nr_domu = new JTextField();
			nr_domu.setSize(50,30);
			nr_domu.setLocation(370,80);
			this.add(nr_domu);
			kryterium_nr_mieszkania = new JRadioButton("Nr mieszkania");
			kryterium_nr_mieszkania.setSize(100,30);
			kryterium_nr_mieszkania.setLocation(420,80);
			this.add(kryterium_nr_mieszkania);
			kryterium_nr_mieszkania.addActionListener(this);
			nr_mieszkania = new JTextField();
			nr_mieszkania.setSize(50,30);
			nr_mieszkania.setLocation(520,80);
			this.add(nr_mieszkania);
			kryterium_kod = new JRadioButton("Kod pocztowy");
			kryterium_kod.setSize(100,30);
			kryterium_kod.setLocation(20,110);
			this.add(kryterium_kod);
			kryterium_kod.addActionListener(this);
			kod_pocztowy = new JTextField();
			kod_pocztowy.setSize(100,30);
			kod_pocztowy.setLocation(120,110);
			this.add(kod_pocztowy);
			kryterium_miasto = new JRadioButton("Miasto");
			kryterium_miasto.setSize(100,30);
			kryterium_miasto.setLocation(270,110);
			this.add(kryterium_miasto);
			kryterium_nr_domu.addActionListener(this);
			miasto = new JTextField();
			miasto.setSize(100,30);
			miasto.setLocation(370,110);
			this.add(miasto);

			group = new ButtonGroup();
			group.add(kryterium_imie);
			group.add(kryterium_nazwisko);
			group.add(kryterium_id_czytelnika);
			group.add(kryterium_ulica);
			group.add(kryterium_nr_domu);
			group.add(kryterium_nr_mieszkania);
			group.add(kryterium_kod);
			group.add(kryterium_miasto);
			
			przycisk_szukaj = new JButton("Szukaj");
			przycisk_szukaj.setSize(100,50);
			przycisk_szukaj.setLocation(80,150);
			this.add(przycisk_szukaj);
			przycisk_szukaj.addActionListener(this);
			przycisk_anuluj = new JButton("Anuluj");
			przycisk_anuluj.setSize(100,50);
			przycisk_anuluj.setLocation(180,150);
			this.add(przycisk_anuluj);
			przycisk_anuluj.addActionListener(this);
			
	
			this.setSize(800,600);
			this.setVisible( true );
	   }
	   
		/**
		* Metoda redefiniujaca metode actionPerformed z interfejsu ActionListener
		* @param e definiuje zdarzenie
		*/
	   public void actionPerformed(ActionEvent e)
	   {
		   if(e.getActionCommand() == "Szukaj")
		   {
			   if(kryterium_imie.isSelected())
			   {
			   for(int i=0;i<JFrGlowne.czytelnicy.size();i++)
			   {
				   //System.out.println((JFrGlowne.ksiazki.get(i)).autor.imie.toString());
				   //System.out.println(imie_autora.getText());
				   if((JFrGlowne.czytelnicy.get(i)).imie.toString().compareTo(imie.getText()) == 0)
					   {
					   
					   JOptionPane.showMessageDialog(this,"Znaleziona osoba\n" + JFrGlowne.czytelnicy.get(i).nr_karty + "\n" + JFrGlowne.czytelnicy.get(i).imie + " " + JFrGlowne.czytelnicy.get(i).nazwisko + "\n" + JFrGlowne.czytelnicy.get(i).ulica + " " +JFrGlowne.czytelnicy.get(i).nr_domu + " " + JFrGlowne.czytelnicy.get(i).nr_mieszkania + "\n" + JFrGlowne.czytelnicy.get(i).kod + " " + JFrGlowne.czytelnicy.get(i).miejscowosc,"Znaleziony",JOptionPane.INFORMATION_MESSAGE);
					   JFrGlowne.log.info("Znaleziono czytelnika o imieniu: " + imie.toString());
					   this.dispose();
					   }
				   
			   }
			   
			   }
			   if(kryterium_nazwisko.isSelected())
			   {
			   for(int i=0;i<JFrGlowne.czytelnicy.size();i++)
			   {
				   //System.out.println((JFrGlowne.ksiazki.get(i)).autor.imie.toString());
				   //System.out.println(imie_autora.getText());
				   if((JFrGlowne.czytelnicy.get(i)).nazwisko.toString().compareTo(nazwisko.getText()) == 0)
				   {
					   JOptionPane.showMessageDialog(this,"Znaleziona osoba\n" + JFrGlowne.czytelnicy.get(i).nr_karty + "\n" + JFrGlowne.czytelnicy.get(i).imie + " " + JFrGlowne.czytelnicy.get(i).nazwisko + "\n" + JFrGlowne.czytelnicy.get(i).ulica + " " +JFrGlowne.czytelnicy.get(i).nr_domu + " " + JFrGlowne.czytelnicy.get(i).nr_mieszkania + "\n" + JFrGlowne.czytelnicy.get(i).kod + " " + JFrGlowne.czytelnicy.get(i).miejscowosc + "\nWypożyczonych książek: " + JFrGlowne.czytelnicy.get(i).wypożyczone.size(),"Znaleziony",JOptionPane.INFORMATION_MESSAGE);
					   JFrGlowne.log.info("Znaleziono czytelnika o nazwisku: " + nazwisko.toString());
					   this.dispose();
				   }
				   
			   }
			   
			   }
			   if(kryterium_id_czytelnika.isSelected())
			   {
			   for(int i=0;i<JFrGlowne.czytelnicy.size();i++)
			   {
				   //System.out.println((JFrGlowne.ksiazki.get(i)).autor.imie.toString());
				   //System.out.println(imie_autora.getText());
				   if(("" + JFrGlowne.czytelnicy.get(i).nr_karty).compareTo(id_czytelnika.getText()) == 0)
				   {
					   JOptionPane.showMessageDialog(this,"Znaleziona osoba\n" + JFrGlowne.czytelnicy.get(i).nr_karty + "\n" + JFrGlowne.czytelnicy.get(i).imie + " " + JFrGlowne.czytelnicy.get(i).nazwisko + "\n" + JFrGlowne.czytelnicy.get(i).ulica + " " +JFrGlowne.czytelnicy.get(i).nr_domu + " " + JFrGlowne.czytelnicy.get(i).nr_mieszkania + "\n" + JFrGlowne.czytelnicy.get(i).kod + " " + JFrGlowne.czytelnicy.get(i).miejscowosc + "\nWypożyczonych książek: " + JFrGlowne.czytelnicy.get(i).wypożyczone.size(),"Znaleziony",JOptionPane.INFORMATION_MESSAGE);
					   JFrGlowne.log.info("Znaleziono czytelnika o id: " + id_czytelnika.toString());
					   this.dispose();
				   }
				   
			   }
			   }
			   if(kryterium_ulica.isSelected())
			   {
			   for(int i=0;i<JFrGlowne.czytelnicy.size();i++)
			   {
				   //System.out.println((JFrGlowne.ksiazki.get(i)).autor.imie.toString());
				   //System.out.println(imie_autora.getText());
				   if((JFrGlowne.czytelnicy.get(i)).ulica.toString().compareTo(ulica.getText()) == 0)
				   {
					   JOptionPane.showMessageDialog(this,"Znaleziona osoba\n" + JFrGlowne.czytelnicy.get(i).nr_karty + "\n" + JFrGlowne.czytelnicy.get(i).imie + " " + JFrGlowne.czytelnicy.get(i).nazwisko + "\n" + JFrGlowne.czytelnicy.get(i).ulica + " " +JFrGlowne.czytelnicy.get(i).nr_domu + " " + JFrGlowne.czytelnicy.get(i).nr_mieszkania + "\n" + JFrGlowne.czytelnicy.get(i).kod + " " + JFrGlowne.czytelnicy.get(i).miejscowosc + "\nWypożyczonych książek: " + JFrGlowne.czytelnicy.get(i).wypożyczone.size(),"Znaleziony",JOptionPane.INFORMATION_MESSAGE);
					   JFrGlowne.log.info("Znaleziono czytelnika mieszkającego na ulicy: " + ulica.toString());
					   this.dispose();
				   }
				   
			   }
			   
			   }
			   if(kryterium_nr_domu.isSelected())
			   {
			   for(int i=0;i<JFrGlowne.czytelnicy.size();i++)
			   {
				   //System.out.println((JFrGlowne.ksiazki.get(i)).autor.imie.toString());
				   //System.out.println(imie_autora.getText());
				   if((JFrGlowne.czytelnicy.get(i)).nr_domu.toString().compareTo(nr_domu.getText()) == 0)
				   {
					   JOptionPane.showMessageDialog(this,"Znaleziona osoba\n" + JFrGlowne.czytelnicy.get(i).nr_karty + "\n" + JFrGlowne.czytelnicy.get(i).imie + " " + JFrGlowne.czytelnicy.get(i).nazwisko + "\n" + JFrGlowne.czytelnicy.get(i).ulica + " " +JFrGlowne.czytelnicy.get(i).nr_domu + " " + JFrGlowne.czytelnicy.get(i).nr_mieszkania + "\n" + JFrGlowne.czytelnicy.get(i).kod + " " + JFrGlowne.czytelnicy.get(i).miejscowosc + "\nWypożyczonych książek: " + JFrGlowne.czytelnicy.get(i).wypożyczone.size(),"Znaleziony",JOptionPane.INFORMATION_MESSAGE);
					   JFrGlowne.log.info("Znaleziono czytelnika o numerze domu: " + nr_domu.toString());
					   this.dispose();
				   }
				   
			   }
			   
			   }
			   if(kryterium_nr_mieszkania.isSelected())
			   {
			   for(int i=0;i<JFrGlowne.czytelnicy.size();i++)
			   {
				   //System.out.println((JFrGlowne.ksiazki.get(i)).autor.imie.toString());
				   //System.out.println(imie_autora.getText());
				   if((JFrGlowne.czytelnicy.get(i)).nr_mieszkania.toString().compareTo(nr_mieszkania.getText()) == 0)
				   {
					   JOptionPane.showMessageDialog(this,"Znaleziona osoba\n" + JFrGlowne.czytelnicy.get(i).nr_karty + "\n" + JFrGlowne.czytelnicy.get(i).imie + " " + JFrGlowne.czytelnicy.get(i).nazwisko + "\n" + JFrGlowne.czytelnicy.get(i).ulica + " " +JFrGlowne.czytelnicy.get(i).nr_domu + " " + JFrGlowne.czytelnicy.get(i).nr_mieszkania + "\n" + JFrGlowne.czytelnicy.get(i).kod + " " + JFrGlowne.czytelnicy.get(i).miejscowosc + "\nWypożyczonych książek: " + JFrGlowne.czytelnicy.get(i).wypożyczone.size(),"Znaleziony",JOptionPane.INFORMATION_MESSAGE);
					   JFrGlowne.log.info("Znaleziono czytelnika o numerze mieszkania: " + nr_mieszkania.toString());
					   this.dispose();
				   }
				   
			   }
			   }
			   if(kryterium_kod.isSelected())
			   {
			   for(int i=0;i<JFrGlowne.czytelnicy.size();i++)
			   {
				   //System.out.println((JFrGlowne.ksiazki.get(i)).autor.imie.toString());
				   //System.out.println(imie_autora.getText());
				   if((JFrGlowne.czytelnicy.get(i)).kod.toString().compareTo(kod_pocztowy.getText()) == 0)
				   {
					   JOptionPane.showMessageDialog(this,"Znaleziona osoba\n" + JFrGlowne.czytelnicy.get(i).nr_karty + "\n" + JFrGlowne.czytelnicy.get(i).imie + " " + JFrGlowne.czytelnicy.get(i).nazwisko + "\n" + JFrGlowne.czytelnicy.get(i).ulica + " " +JFrGlowne.czytelnicy.get(i).nr_domu + " " + JFrGlowne.czytelnicy.get(i).nr_mieszkania + "\n" + JFrGlowne.czytelnicy.get(i).kod + " " + JFrGlowne.czytelnicy.get(i).miejscowosc + "\nWypożyczonych książek: " + JFrGlowne.czytelnicy.get(i).wypożyczone.size(),"Znaleziony",JOptionPane.INFORMATION_MESSAGE);
					   JFrGlowne.log.info("Znaleziono czytelnika o kodzie pocztowym: " + kod_pocztowy.toString());
					   this.dispose();
				   }
				   
			   }
			   }
			   if(kryterium_miasto.isSelected())
			   {
			   for(int i=0;i<JFrGlowne.czytelnicy.size();i++)
			   {
				   //System.out.println((JFrGlowne.ksiazki.get(i)).autor.imie.toString());
				   //System.out.println(imie_autora.getText());
				   if((JFrGlowne.czytelnicy.get(i)).miejscowosc.toString().compareTo(miasto.getText()) == 0)
				   {
					   JOptionPane.showMessageDialog(this,"Znaleziona osoba\n" + JFrGlowne.czytelnicy.get(i).nr_karty + "\n" + JFrGlowne.czytelnicy.get(i).imie + " " + JFrGlowne.czytelnicy.get(i).nazwisko + "\n" + JFrGlowne.czytelnicy.get(i).ulica + " " +JFrGlowne.czytelnicy.get(i).nr_domu + " " + JFrGlowne.czytelnicy.get(i).nr_mieszkania + "\n" + JFrGlowne.czytelnicy.get(i).kod + " " + JFrGlowne.czytelnicy.get(i).miejscowosc + "\nWypożyczonych książek: " + JFrGlowne.czytelnicy.get(i).wypożyczone.size(),"Znaleziony",JOptionPane.INFORMATION_MESSAGE);
					   JFrGlowne.log.info("Znaleziono czytelnika z miasta: " + miasto.toString());
					   this.dispose();
				   }
				   
			   }
			   }
			   //System.err.println(e.getActionCommand());
			   this.dispose();
		   }
		   if(e.getActionCommand() == "Anuluj")
		   {
			   //JOptionPane.showMessageDialog(null,"Nie zaimplementowane","Komunikat",JOptionPane.INFORMATION_MESSAGE);
			   //System.err.println(e.getActionCommand());
			   this.dispose();
		   }
	   }
	   
}