package modelsorter;

import java.util.Arrays;
import java.util.Comparator;

import javax.swing.AbstractListModel;

public class PersonListModel extends AbstractListModel {

	Person[] persons = new Person[] { new Person("Mika", 1990),
			new Person("Pera", 1978), new Person("Ana", 1993) };
	
	
	public PersonListModel() {
		// TODO Auto-generated constructor stub
	}
	
	public PersonListModel(Person[] persons) {
		this.persons=persons;
	}
	
	@Override
	public Object getElementAt(int arg0) {
		return persons[arg0];
	}

	@Override
	public int getSize() {
		return persons.length;
	}
	
	public void sortByName(){
		Arrays.sort(persons);
		fireContentsChanged(this, 0, getSize()-1);
	}

	public void sortByBirthYear(){
		Arrays.sort(persons, new Comparator<Person>() {
				@Override
				public int compare(Person o1, Person o2) {
					return o1.birthYear-o2.birthYear;
				}
			});
		fireContentsChanged(this, 0, getSize()-1);
	}
}
