package personsorter;

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;
import java.util.Comparator;

import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;

public class PersonSorterGUI extends JFrame {

	int w = 500;
	int h = 500;
	Person[] persons = new Person[]{
			new Person("Pera",1989),
			new Person("Ana",1985),
			new Person("Mika",1976),
			new Person("Zika",1993)};
	JList list;
	JButton btnName;
	JButton btnYear;
	
	//ctrl+space = intellisense
	public PersonSorterGUI() {
			setVisible(true);
			//setSize(new Dimension(w,h));
			setPreferredSize(new Dimension(w,h));
			setDefaultCloseOperation(EXIT_ON_CLOSE);
			addControls();
			pack();
	}
	
	void addControls(){
		list=new JList(persons);
		btnName=new JButton("Sort by name");
		btnName.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				Arrays.sort(persons);
				list.repaint();
			}
		});
		btnYear=new JButton("Sort by birth year");
		btnYear.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				Arrays.sort(persons, new Comparator<Person>() {
					@Override
					public int compare(Person arg0, Person arg1) {
						return arg0.birthYear-arg1.birthYear;
					}
				});
				list.repaint();
			}
		});
		setLayout(new GridLayout(2,1));
		JPanel panel = new JPanel();
		panel.setLayout(new FlowLayout());
		add(list);
		add(panel);
		panel.add(btnName);
		panel.add(btnYear);
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		PersonSorterGUI gui=new PersonSorterGUI();
	}

}
