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 ksiazek wzgledem zadanego kryterium
 * @author w21826
 *
 */
public class JFrSzukajKsiazki extends JFrame implements ActionListener
{
	/**
	 * Etykieta wyswietlajaca 
	 */
	JLabel autor;
	/**
	 * Pole tekstowe okreslajace imie autora ksiazek, ktorych szukamy
	 */
	JTextField imie_autora;
	/**
	 * Pole tekstowe okreslajace nazwisko autora ksiazek, ktorych szukamy
	 */
	JTextField nazwisko_autora;
	/**
	 * Pole tekstowe okreslajace tytul ksiazek, ktorych szukamy
	 */
	JTextField tytul;
	/**
	 * Pole tekstowe okreslajace numer katalogowy ksiazki, ktorej szukamy
	 */
	JTextField nr_katalogowy;
	/**
	 * Pole tekstowe okreslajace rok wydania ksiazek, ktorych szukamy
	 */
	JTextField rok_wydania;
	/**
	 * Pole tekstowe okreslajace wydawnictwo, ktore wydalo szukane ksiazki
	 */
	JTextField wydawnictwo;
	/**
	 * Przycisk, ktorego wcisniecie powoduje przeszukanie bazy ksiazek wzgledem zadanego kryterium
	 */	
	JButton przycisk_szukaj;
	/**
	 * Przycisk, ktorego wcisniecie powoduje anulowanie operacji szukania ksiazki oraz zamyka okno
	 */	
	JButton przycisk_anuluj;
	/**
	 * Grupa przelacznikow, dzieki niej tylko jeden moze byc w danej chwili zaznaczony
	 */
	ButtonGroup group;
	/**
	 * Przelacznik, jesli jest wybrany, kryterium szukania bedzie imie autora ksiazki
	 */
	JRadioButton kryterium_imie;
	/**
	 * Przelacznik, jesli jest wybrany, kryterium szukania bedzie nazwisko autora ksiazki
	 */
	JRadioButton kryterium_nazwisko;
	/**
	 * Przelacznik, jesli jest wybrany, kryterium szukania bedzie tytul ksiazki
	 */
	JRadioButton kryterium_tytul;
	/**
	 * Przelacznik, jesli jest wybrany, kryterium szukania bedzie rok wydania ksiazki
	 */
	JRadioButton kryterium_rok_wydania;
	/**
	 * Przelacznik, jesli jest wybrany, kryterium szukania bedzie wydawnictwo ksiazki
	 */
	JRadioButton kryterium_wydawnictwo;
	/**
	 * Przelacznik, jesli jest wybrany, kryterium szukania bedzie numer katalogowy ksiazki
	 */
	JRadioButton kryterium_nr_katalogowy;
	
	
	/**
	 * Konstruktor bezparametrowy tworzacy nowe okno o tytule "Szukaj ksiazki"
	 * definiujacy rozmiar, polozenie, widocznosc okna i rozmieszczajacy etykiety, pola tekstowe oraz przyciski
	 *
	 */
	   public JFrSzukajKsiazki()
	   {
			this.setLayout(null);
			this.setTitle("Szukaj książki");

			JFrGlowne.log.info("Szukanie książki");
			autor = new JLabel("Wybierz kryterium szukania i wpisz poszukiwany tekst");
			autor.setSize(300,30);
			autor.setLocation(20,20);
			this.add(autor);
			kryterium_imie = new JRadioButton("Imię autora");
			kryterium_imie.setSize(130,30);
			kryterium_imie.setLocation(20,50);
			this.add(kryterium_imie);
			kryterium_imie.addActionListener(this);
			imie_autora = new JTextField();
			imie_autora.setSize(150,30);
			imie_autora.setLocation(150,50);
			this.add(imie_autora);
			kryterium_nazwisko = new JRadioButton("Nazwisko autora");
			kryterium_nazwisko.setSize(130,30);
			kryterium_nazwisko.setLocation(300,50);
			this.add(kryterium_nazwisko);
			kryterium_nazwisko.addActionListener(this);
			nazwisko_autora = new JTextField();
			nazwisko_autora.setSize(150,30);
			nazwisko_autora.setLocation(520,50);
			this.add(nazwisko_autora);
			kryterium_tytul = new JRadioButton("Tytuł");
			kryterium_tytul.setSize(130,30);
			kryterium_tytul.setLocation(20,80);
			this.add(kryterium_tytul);
			kryterium_tytul.addActionListener(this);
			tytul = new JTextField();
			tytul.setSize(150,30);
			tytul.setLocation(150,80);
			this.add(tytul);
			kryterium_nr_katalogowy = new JRadioButton("Numer katalogowy");
			kryterium_nr_katalogowy.setSize(130,30);
			kryterium_nr_katalogowy.setLocation(300,80);
			this.add(kryterium_nr_katalogowy);
			kryterium_nr_katalogowy.addActionListener(this);
			nr_katalogowy = new JTextField();
			nr_katalogowy.setSize(150,30);
			nr_katalogowy.setLocation(520,80);
			this.add(nr_katalogowy);
			kryterium_wydawnictwo = new JRadioButton("Wydawnictwo");
			kryterium_wydawnictwo.setSize(130,30);
			kryterium_wydawnictwo.setLocation(20,110);
			this.add(kryterium_wydawnictwo);
			kryterium_wydawnictwo.addActionListener(this);
			wydawnictwo = new JTextField();
			wydawnictwo.setSize(150,30);
			wydawnictwo.setLocation(150,110);
			this.add(wydawnictwo);
			kryterium_rok_wydania = new JRadioButton("Rok wydania");
			kryterium_rok_wydania.setSize(130,30);
			kryterium_rok_wydania.setLocation(300,110);
			this.add(kryterium_rok_wydania);
			kryterium_rok_wydania.addActionListener(this);
			rok_wydania = new JTextField();
			rok_wydania.setSize(150,30);
			rok_wydania.setLocation(520,110);
			this.add(rok_wydania);
			group = new ButtonGroup();
			group.add(kryterium_imie);
			group.add(kryterium_nazwisko);
			group.add(kryterium_tytul);
			group.add(kryterium_rok_wydania);
			group.add(kryterium_wydawnictwo);
			group.add(kryterium_nr_katalogowy);
			
			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.ksiazki.size();i++)
			   {
				   //System.out.println((JFrGlowne.ksiazki.get(i)).autor.imie.toString());
				   //System.out.println(imie_autora.getText());
				   if((JFrGlowne.ksiazki.get(i)).autor.imie.toString().compareTo(imie_autora.getText()) == 0)
					   {
					   JOptionPane.showMessageDialog(this,"Znaleziona książka\n" + JFrGlowne.ksiazki.get(i).numer_katalogowy + "\n" + JFrGlowne.ksiazki.get(i).autor.imie + "\n" + JFrGlowne.ksiazki.get(i).autor.nazwisko + "\n" +JFrGlowne.ksiazki.get(i).tytul + "\n" + JFrGlowne.ksiazki.get(i).wydanie + "\n" + JFrGlowne.ksiazki.get(i).wydawnictwo,"Znaleziony",JOptionPane.INFORMATION_MESSAGE);
					   JFrGlowne.log.info("Znaleziono książkę o imieniu autora: " + imie_autora.toString());
					   this.dispose();
					   }
				   
			   }
			   
			   }
			   if(kryterium_nazwisko.isSelected())
			   {
			   for(int i=0;i<JFrGlowne.ksiazki.size();i++)
			   {
				   //System.out.println((JFrGlowne.ksiazki.get(i)).autor.imie.toString());
				   //System.out.println(imie_autora.getText());
				   if((JFrGlowne.ksiazki.get(i)).autor.nazwisko.toString().compareTo(nazwisko_autora.getText()) == 0)
					   {
					   JOptionPane.showMessageDialog(this,"Znaleziona książka\n" + JFrGlowne.ksiazki.get(i).numer_katalogowy + "\n" + JFrGlowne.ksiazki.get(i).autor.imie + "\n" + JFrGlowne.ksiazki.get(i).autor.nazwisko + "\n" +JFrGlowne.ksiazki.get(i).tytul + "\n" + JFrGlowne.ksiazki.get(i).wydanie + "\n" + JFrGlowne.ksiazki.get(i).wydawnictwo,"Znaleziony",JOptionPane.INFORMATION_MESSAGE);
					   JFrGlowne.log.info("Znaleziono książkę o nazwisku autora: " + nazwisko_autora.toString());
					   this.dispose();
					   }
				   
			   }
			   
			   }
			   if(kryterium_tytul.isSelected())
			   {
			   for(int i=0;i<JFrGlowne.ksiazki.size();i++)
			   {
				   //System.out.println((JFrGlowne.ksiazki.get(i)).autor.imie.toString());
				   //System.out.println(imie_autora.getText());
				   if((JFrGlowne.ksiazki.get(i)).tytul.toString().compareTo(tytul.getText()) == 0)
					   {
					   JOptionPane.showMessageDialog(this,"Znaleziona książka\n" + JFrGlowne.ksiazki.get(i).numer_katalogowy + "\n" + JFrGlowne.ksiazki.get(i).autor.imie + "\n" + JFrGlowne.ksiazki.get(i).autor.nazwisko + "\n" +JFrGlowne.ksiazki.get(i).tytul + "\n" + JFrGlowne.ksiazki.get(i).wydanie + "\n" + JFrGlowne.ksiazki.get(i).wydawnictwo,"Znaleziony",JOptionPane.INFORMATION_MESSAGE);  
					   JFrGlowne.log.info("Znaleziono książkę o tytule: " + tytul.toString());
					   this.dispose();
					   }
				   
			   }
			   
			   }
			   if(kryterium_rok_wydania.isSelected())
			   {
			   for(int i=0;i<JFrGlowne.ksiazki.size();i++)
			   {
				   //System.out.println((JFrGlowne.ksiazki.get(i)).autor.imie.toString());
				   //System.out.println(imie_autora.getText());
				   if((JFrGlowne.ksiazki.get(i)).wydanie.toString().compareTo(rok_wydania.getText()) == 0)
				   {
					   JOptionPane.showMessageDialog(this,"Znaleziona książka\n" + JFrGlowne.ksiazki.get(i).numer_katalogowy + "\n" + JFrGlowne.ksiazki.get(i).autor.imie + "\n" + JFrGlowne.ksiazki.get(i).autor.nazwisko + "\n" +JFrGlowne.ksiazki.get(i).tytul + "\n" + JFrGlowne.ksiazki.get(i).wydanie + "\n" + JFrGlowne.ksiazki.get(i).wydawnictwo,"Znaleziony",JOptionPane.INFORMATION_MESSAGE);  
					   JFrGlowne.log.info("Znaleziono książkę wydaną w " + rok_wydania.toString() + " roku");
					   this.dispose();
				   }
				   
			   }
			   
			   }
			   if(kryterium_wydawnictwo.isSelected())
			   {
			   for(int i=0;i<JFrGlowne.ksiazki.size();i++)
			   {
				   //System.out.println((JFrGlowne.ksiazki.get(i)).autor.imie.toString());
				   //System.out.println(imie_autora.getText());
				   if((JFrGlowne.ksiazki.get(i)).wydawnictwo.toString().compareTo(wydawnictwo.getText()) == 0)
				   {
					   JOptionPane.showMessageDialog(this,"Znaleziona książka\n" + JFrGlowne.ksiazki.get(i).numer_katalogowy + "\n" + JFrGlowne.ksiazki.get(i).autor.imie + "\n" + JFrGlowne.ksiazki.get(i).autor.nazwisko + "\n" +JFrGlowne.ksiazki.get(i).tytul + "\n" + JFrGlowne.ksiazki.get(i).wydanie + "\n" + JFrGlowne.ksiazki.get(i).wydawnictwo,"Znaleziony",JOptionPane.INFORMATION_MESSAGE);  
					   JFrGlowne.log.info("Znaleziono książkę wydaną przez: " + wydawnictwo.toString());
					   this.dispose();
				   }
				   
			   }
			   
			   }
			   if(kryterium_nr_katalogowy.isSelected())
			   {
			   for(int i=0;i<JFrGlowne.ksiazki.size();i++)
			   {
				   //System.out.println((JFrGlowne.ksiazki.get(i)).autor.imie.toString());
				   //System.out.println(imie_autora.getText());
				   if((JFrGlowne.ksiazki.get(i)).numer_katalogowy.toString().compareTo(nr_katalogowy.getText()) == 0)
				   {
					   JOptionPane.showMessageDialog(this,"Znaleziona książka\n" + JFrGlowne.ksiazki.get(i).numer_katalogowy + "\n" + JFrGlowne.ksiazki.get(i).autor.imie + "\n" + JFrGlowne.ksiazki.get(i).autor.nazwisko + "\n" +JFrGlowne.ksiazki.get(i).tytul + "\n" + JFrGlowne.ksiazki.get(i).wydanie + "\n" + JFrGlowne.ksiazki.get(i).wydawnictwo,"Znaleziony",JOptionPane.INFORMATION_MESSAGE);  
					   JFrGlowne.log.info("Znaleziono książkę o ID: " + nr_katalogowy.toString());
					   this.dispose();
				   }
				   
			   }
			   
			   }
			   //System.err.println(e.getActionCommand());
		   }
		   if(e.getActionCommand() == "Anuluj")
		   {
			   //JOptionPane.showMessageDialog(null,"Nie zaimplementowane","Komunikat",JOptionPane.INFORMATION_MESSAGE);
			   //System.err.println(e.getActionCommand());
			   this.dispose();
		   }
	   }
	   
}