package biblioteka_gui;

import javax.swing.*;
//import java.awt.*;
import java.awt.event.*;

/**
 * Klasa dziedziczaca po klasie JFrame, implementujaca interfejs ActionListener
 * <br>Wyswietla okno z mozliwoscia wybrania stylu graficznego obowiazujacego w calym programie, dla odswiezenia okna glownego programu nalezy uzyc opcji "Odswiez okno" z menu Opcje
 * @author w21826
 */
public class JFrWyglad extends JFrame implements ActionListener
{
	JLabel etykieta_wyglad;
	ButtonGroup grupa;
	JRadioButton windows;
	JRadioButton gtk;
	JRadioButton motif;
	JRadioButton domyslny;
	JButton przycisk_dodaj;
	JButton przycisk_ustaw;
	JButton przycisk_anuluj;
	String wybor;

	
	/**
	 * Konstruktor bezparametrowy tworzacy nowe okno o tytule "Ustaw wyglad programu"
	 * definiujacy rozmiar, polozenie, widocznosc okna i rozmieszczajacy etykiety, pola tekstowe oraz przyciski
	 *
	 */
	   public JFrWyglad()
	   {
			this.setLayout(null);
			this.setTitle("Ustaw wygląd programu");
			
			wybor="com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
			etykieta_wyglad = new JLabel("Styl:");
			etykieta_wyglad.setSize(100,30);
			etykieta_wyglad.setLocation(20,20);
			this.add(etykieta_wyglad);
			
			windows = new JRadioButton("Windows");
			windows.setSize(100,30);
			windows.setLocation(20,50);
			this.add(windows);
			windows.addActionListener(this);
			gtk = new JRadioButton("GTK+");
			gtk.setSize(100,30);
			gtk.setLocation(20,80);
			this.add(gtk);
			gtk.addActionListener(this);
			motif = new JRadioButton("Motif");
			motif.setSize(100,30);
			motif.setLocation(20,110);
			this.add(motif);
			motif.addActionListener(this);
			domyslny = new JRadioButton("Domyślny");
			domyslny.setSize(100,30);
			domyslny.setLocation(20,140);
			this.add(domyslny);
			domyslny.addActionListener(this);
			
			grupa = new ButtonGroup();
			grupa.add(windows);
			grupa.add(gtk);
			grupa.add(motif);
			grupa.add(domyslny);
			
			przycisk_dodaj = new JButton("Pokaż");
			przycisk_dodaj.setSize(100,50);
			przycisk_dodaj.setLocation(80,200);
			this.add(przycisk_dodaj);
			przycisk_dodaj.addActionListener(this);
			przycisk_ustaw = new JButton("Ustaw");
			przycisk_ustaw.setSize(100,50);
			przycisk_ustaw.setLocation(180,200);
			this.add(przycisk_ustaw);
			przycisk_ustaw.addActionListener(this);
			przycisk_anuluj = new JButton("Anuluj");
			przycisk_anuluj.setSize(100,50);
			przycisk_anuluj.setLocation(280,200);
			this.add(przycisk_anuluj);
			przycisk_anuluj.addActionListener(this);
			
			this.setSize(800,600);
			this.setVisible( true );

	   }
	    
	   
	   public void actionPerformed(ActionEvent e)
	   {
		   System.out.println(e.getActionCommand());
		   if(e.getActionCommand() == "Windows" )
		   {
			   System.out.println("Wybrano windows");
			   wybor="com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
		   }
		   if(e.getActionCommand() == "GTK+")
		   {
			   System.out.println("Wybrano GTK+");
				wybor="com.sun.java.swing.plaf.gtk.GTKLookAndFeel";
		   }
		   if(e.getActionCommand() == "Motif")
		   {
			   wybor="com.sun.java.swing.plaf.motif.MotifLookAndFeel";
		   }
		   if(e.getActionCommand() == "Domyślny")
		   {
			   wybor="javax.swing.plaf.metal.MetalLookAndFeel";
		   }
		   if(e.getActionCommand() == "Pokaż")
		   {
			try 
				{
				UIManager.setLookAndFeel(wybor);
				SwingUtilities.updateComponentTreeUI(this);
				} catch (Exception wyjatek) {wyjatek.printStackTrace(); JOptionPane.showMessageDialog(null,"Nie udało się zmienić wyglądu!","Błąd",JOptionPane.ERROR_MESSAGE); }
		   	}
		   if(e.getActionCommand() == "Ustaw")
		   {
			   JFrGlowne.ui_styl=wybor;
			   JOptionPane.showMessageDialog(this, "Ustawiono styl\nW menu wybierz opcję Odśwież okno", "Informacja!", JOptionPane.INFORMATION_MESSAGE);
			   this.dispose();
		   }
	   	   if(e.getActionCommand() == "Anuluj")
	   	   {
	   		   this.dispose();
	   	   }
	   }
}