package GUIAnwendungen.StudentManagementSystem;

import java.util.ArrayList;
import java.util.Vector;

import GUIAnwendungen.StudentManagementSystem.Domain.Student;

public class VerwalteStudent {

	private Student student;
	private Student_login view;
	private ArrayList<Student> allStudents;
	private int index = 0;
	
	public VerwalteStudent() {
		this.view = new Student_login();
		view.getInsertStudent().addActionListener(e -> insert());
		view.getLoescheStudent().addActionListener(e -> loeschen());
		view.getSucheStudent().addActionListener(e -> showUser());
		view.getUpdateStudent().addActionListener(e -> update());	
		view.getZeigeAlleStudent().addActionListener(e -> showAll());
		allStudents = new ArrayList<>();
	}
	
	
	
	public void insert() {
		String idText = view.getEingabeId().getText();
		int id = Integer.parseInt(idText);
		String name = view.getEingabeName().getText();
		String vorname = view.getEingabeVorname().getText();
		String geburtstag = view.getEingabeGeburtstag().getText();
		String geschlecht = view.getEingabeGeschlecht().getSelectedItem().toString();
		String teleN = view.getEingabeTeleN().getText();
		String email = view.getEingabeEmail().getText();
		String Adresse = view.getEingabeAdresse().getText();

		student = new Student(name, vorname, geschlecht, email, teleN, Adresse, geburtstag, id);
		allStudents.add(student);
		view.showInfo(student.toString());
		
		String[] array = {student.getId()+"",student.getName(),student.getVorname(),student.getGeburtstag(),student.getGeschlecht(),student.getTele(),student.getEmail(),student.getAdresse()};
		view.getModel().addRow(array);
		
		
		restAlleInputs();
	}
	
	public void showAll() {
		if (allStudents.size() == 0)
			view.showErrore("Keine Student sind im System!");
		
		else {
			for (Student als:allStudents ) {
				String[] array = {als.getId()+"",als.getName(),als.getVorname(),als.getGeburtstag(),als.getGeschlecht(),als.getTele(),als.getEmail(),als.getAdresse()};
				view.getModel().addRow(array);
			}	
		}
			
	}
	
	public void update() {
		String idText = view.getEingabeId().getText();
		int id = Integer.parseInt(idText);
		student = findStudent(id);
		if (student == null) {
			view.showErrore("Stundent ist nicht im System!");
			return;
		}
		String name = view.getEingabeName().getText();
		String vorname = view.getEingabeVorname().getText();
		String geburtstag = view.getEingabeGeburtstag().getText();
		String geschlecht = view.getEingabeGeschlecht().getSelectedItem().toString();
		String teleN = view.getEingabeTeleN().getText();
		String email = view.getEingabeEmail().getText();
		String Adresse = view.getEingabeAdresse().getText();
		
		if (!name.isEmpty())
			student.setName(name);
		else if(!vorname.isEmpty())
			student.setVorname(vorname);
		else if(!geburtstag.isEmpty())
			student.setGeburtstag(geburtstag);
		else if(!geschlecht.isEmpty())
			student.setGeschlecht(geschlecht);
		else if(!teleN.isEmpty())
			student.setTele(teleN);
		else if(!email.isEmpty())
			student.setEmail(email);
		else if(!Adresse.isEmpty())
			student.setAdresse(Adresse);
		
		view.showInfo("Student erfolgreich aktulisiert");
		restAlleInputs();
	
	}
	
	public void loeschen() {
		String idText = view.getEingabeIdZuLoeschen().getText();
		int id = Integer.parseInt(idText);
		student = findStudent(id);
		if (student != null) {
			allStudents.remove(student);
			view.showInfo("Student wurde erfolgreich gelöscht");
			showAll();
		}	
	}
	
	public void showUser() {
		String idText = view.getEingabeIdZuLoeschen().getText();
		int id = Integer.parseInt(idText);
		student = findStudent(id);
		if (student != null) {
			String[] array = {student.getId()+"",student.getName(),student.getVorname(),student.getGeburtstag(),student.getGeschlecht(),student.getTele(),student.getEmail(),student.getAdresse()};
			view.getModel().addRow(array);
			view.setEingabeNameZuSuchen("");
		}else
			view.showErrore("Der Student wurde nicht gefunden");
	}
	
	
	
	
	
	private Student findStudent(int id) {
		for (Student s : allStudents)
			if (s.getId() == id)
				return s;
		
		return null;
	}
	
	private void restAlleInputs() {
		view.setEingabeName("");;
		view.setEingabeTeleN("");
		view.setEingabeAdresse("");
		view.setEingabeEmail("");;
		view.setEingabeGeburtstag("");;
		view.setEingabeVorname("");
		view.setEingabeId("");
	}

	public static void main(String[] args) {
		new VerwalteStudent();
	}

}
