package biblioteka_gui;

import javax.swing.*;
import java.awt.event.*;
/**
 * Klasa dziedziczaca po klasie JFrame, implementujaca interfejs ActionListener
 * <br>Wyswietla okno sluzace do dodania czytelnika do bazy czytelnikow
 * @author w21826
 *
 */
public class JFrDodajCzytelnika extends JFrame implements ActionListener
{
	/**
	 * Etykieta wyswietlajaca tekst "Id czytelnika"
	 */
	JLabel etykieta_id_czytelnika;
	/**
	 * Pole tekstowe wyswietlajace unikalny numer czytelnika, brak mozliwosci edycji przez osobe dodajaca czytelnika
	 */
	JTextField id_czytelnika;
	/**
	 * Etykieta wyswietlajaca tekst "Imie:"
	 */
	JLabel etykieta_imie;
	/**
	 * Pole tekstowe sluzace do wpisania imienia czytelnika, jego uzupelnienie jest wymagane
	 */
	JTextField imie;
	/**
	 * Etykieta wyswietlajaca tekst "Nazwisko:"
	 */
	JLabel etykieta_nazwisko;
	/**
	 * Pole tekstowe sluzace do wpisania nazwiska czytelnika, jego uzupelnienie jest wymagane
	 */
	JTextField nazwisko;
	/**
	 * Etykieta wyswietlajaca tekst "Ulica:"
	 */
	JLabel etykieta_ulica;
	/**
	 * Pole tekstowe sluzace do wpisania ulicy przy ktorej mieszka czytelnik, jego uzupelnienie jest wymagane
	 */	
	JTextField ulica;
	/**
	 * Etykieta wyswietlajaca tekst "Nr domu:"
	 */
	JLabel etykieta_nr_domu;
	/**
	 * Pole tekstowe sluzace do wpisania numeru domu w ktorym mieszka czytelnik, jego uzupelnienie jest wymagane
	 */	
	JTextField nr_domu;
	/**
	 * Etykieta wyswietlajaca tekst "Nr mieszkania:"
	 */
	JLabel etykieta_nr_mieszkania;
	/**
	 * Pole tekstowe sluzace do wpisania numeru mieszkania w ktorym mieszka czytelnik, jego uzupelnienie jest wymagane
	 */	
	JTextField nr_mieszkania;
	/**
	 * Etykieta wyswietlajaca tekst "Kod pocztowy:"
	 */
	JLabel etykieta_kod_pocztowy;
	/**
	 * Pole tekstowe sluzace do wpisania kodu pocztowego miasta w ktorym mieszka czytelnik, jego uzupelnienie jest wymagane
	 */	
	JTextField kod_pocztowy;
	/**
	 * Etykieta wyswietlajaca tekst "Nr domu:"
	 */
	JLabel etykieta_miasto;
	/**
	 * Pole tekstowe sluzace do wpisania miasta w ktorym mieszka czytelnik, jego uzupelnienie jest wymagane
	 */	
	JTextField miasto;
	/**
	 * Przycisk, ktorego wcisniecie powoduje dodanie nowego czytelnika
	 */	
	JButton przycisk_dodaj;
	/**
	 * Przycisk, ktorego wcisniecie powoduje anulowanie operacji dodawania nowego czytelnika, okno zostaje zniszczone
	 */	
	JButton przycisk_anuluj;

	/**
	 * Konstruktor bezparametrowy tworzacy nowe okno o tytule "Dodaj ksiazke"
	 * definiujacy rozmiar, polozenie, widocznosc okna i rozmieszczajacy etykiety, pola tekstowe oraz przyciski
	 *
	 */
	   public JFrDodajCzytelnika()
	   {
			this.setLayout(null);
			this.setTitle("Dodaj czytelnika");

			JFrGlowne.log.info("Dodawanie czytelnika");
			etykieta_id_czytelnika = new JLabel("Id czytelnika:");
			etykieta_id_czytelnika.setSize(100,30);
			etykieta_id_czytelnika.setLocation(20,20);
			this.add(etykieta_id_czytelnika);
			id_czytelnika = new JTextField();
			id_czytelnika.setSize(100,30);
			id_czytelnika.setLocation(120,20);
			id_czytelnika.setText("" + JFrGlowne.czytelnicy.size());
			id_czytelnika.setEditable(false);
			this.add(id_czytelnika);
			etykieta_imie = new JLabel("Imię:");
			etykieta_imie.setSize(100,30);
			etykieta_imie.setLocation(20,50);
			this.add(etykieta_imie);
			imie = new JTextField();
			imie.setSize(100,30);
			imie.setLocation(120,50);
			this.add(imie);
			etykieta_nazwisko = new JLabel("Nazwisko:");
			etykieta_nazwisko.setSize(100,30);
			etykieta_nazwisko.setLocation(220,50);
			this.add(etykieta_nazwisko);
			nazwisko = new JTextField();
			nazwisko.setSize(100,30);
			nazwisko.setLocation(320,50);
			this.add(nazwisko);
			etykieta_ulica = new JLabel("Ulica:");
			etykieta_ulica.setSize(100,30);
			etykieta_ulica.setLocation(20,80);
			this.add(etykieta_ulica);
			ulica = new JTextField();
			ulica.setSize(100,30);
			ulica.setLocation(120,80);
			this.add(ulica);
			etykieta_nr_domu = new JLabel("Nr domu:");
			etykieta_nr_domu.setSize(100,30);
			etykieta_nr_domu.setLocation(220,80);
			this.add(etykieta_nr_domu);
			nr_domu = new JTextField();
			nr_domu.setSize(100,30);
			nr_domu.setLocation(320,80);
			this.add(nr_domu);
			etykieta_nr_mieszkania = new JLabel("Nr mieszkania:");
			etykieta_nr_mieszkania.setSize(100,30);
			etykieta_nr_mieszkania.setLocation(420,80);
			this.add(etykieta_nr_mieszkania);
			nr_mieszkania = new JTextField();
			nr_mieszkania.setSize(100,30);
			nr_mieszkania.setLocation(520,80);
			this.add(nr_mieszkania);
			etykieta_kod_pocztowy = new JLabel("Kod pocztowy:");
			etykieta_kod_pocztowy.setSize(100,30);
			etykieta_kod_pocztowy.setLocation(20,110);
			this.add(etykieta_kod_pocztowy);
			kod_pocztowy = new JTextField();
			kod_pocztowy.setSize(100,30);
			kod_pocztowy.setLocation(120,110);
			this.add(kod_pocztowy);
			etykieta_miasto = new JLabel("Miasto");
			etykieta_miasto.setSize(100,30);
			etykieta_miasto.setLocation(220,110);
			this.add(etykieta_miasto);
			miasto = new JTextField();
			miasto.setSize(100,30);
			miasto.setLocation(320,110);
			this.add(miasto);
			
			przycisk_dodaj = new JButton("Dodaj");
			przycisk_dodaj.setSize(100,50);
			przycisk_dodaj.setLocation(80,150);
			this.add(przycisk_dodaj);
			przycisk_dodaj.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() == "Dodaj")
		   {
			   if(id_czytelnika.getText().compareTo("") != 0 && imie.getText().compareTo("") != 0 && nazwisko.getText().compareTo("") != 0 && ulica.getText().compareTo("") != 0 && nr_domu.getText().compareTo("") != 0 && nr_mieszkania.getText().compareTo("")!= 0 && kod_pocztowy.getText().compareTo("") != 0 && miasto.getText().compareTo("") != 0)
			   {
				   JFrGlowne.czytelnicy.add(new Czytelnik(JFrGlowne.czytelnicy.size(), this.imie.getText(),this.nazwisko.getText(),this.ulica.getText(),this.nr_domu.getText(),this.nr_mieszkania.getText(),this.kod_pocztowy.getText(),this.miasto.getText()));
				   JOptionPane.showMessageDialog(this,"Dodano czytelnika","Komunikat",JOptionPane.INFORMATION_MESSAGE);
				   JFrGlowne.log.info("Dodano czytelnika " + (JFrGlowne.czytelnicy.size()-1) + " " + imie.getText() + " " + nazwisko.getText() + " " + ulica.getText() + " " + nr_domu.getText() + " " + nr_mieszkania.getText() + " " + kod_pocztowy.getText() + " " + miasto.getText());
				   JFrGlowne.czytelnicy.get(JFrGlowne.czytelnicy.size()-1).wyswietl();
				   //System.err.println(e.getActionCommand());
				   //System.err.println("Wszystkie dane podane :)");
				   this.dispose();
			   }
			   else
			   {
				   JOptionPane.showMessageDialog(this, "Nie podałeś wymaganych danych!", "Błąd!", JOptionPane.ERROR_MESSAGE);
				   JFrGlowne.log.warning("Nie podano wymaganych danych");
			   }
				   
		   }
		   if(e.getActionCommand() == "Anuluj")
		   {
			   //System.err.println(e.getActionCommand());
			   this.dispose();
			   
		   }
	   }
	   
}