package controler.recherche;

import java.sql.Connection;
import java.util.List;

import view.vueRechercheGroupe.VueRechercheGroupe;

import commander.Commander;

import controler.Message;
import database.crud.ClientCrud;
import database.crud.GroupeCrud;
import database.dataset.Client;
import database.dataset.Groupe;

/**
 * 
 * @author Alfredo Toyo
 *
 */
public class ControlerRechercheGroupe {
	public ControlerRechercheGroupe() {		
	}
	public static final Message reveil = new Message(){
		public void trigger(Object caster) throws Exception {
			recherche.trigger(caster);
		}
	};
	
	public static final Message recherche = new Message(){
		public void trigger(Object caster) throws Exception {
			if (!(caster instanceof VueRechercheGroupe))
				return;
		
			VueRechercheGroupe vue = (VueRechercheGroupe)caster;
			
			Connection connection = Commander.getInstance().getConnectionBD();
			
			GroupeCrud groupeCrud = new GroupeCrud(connection);
			ClientCrud clientCrud = new ClientCrud(connection);
			
			String groupeNom    = vue.getTextFieldNomGroupe();
			String clientNom    = vue.getTextFieldNomClient();
			String clientPrenom = vue.getTextFieldPrenomClient();
			
			List<Groupe> groupes = groupeCrud.readAllLike(clientNom, clientPrenom, groupeNom);
			vue.clearGroupe();
			
			for(Groupe groupe : groupes){
				Client client = clientCrud.readById(groupe.getClient_fk_id());
				vue.addLineToTableGroupe(groupe.getgroupe_p_id(), 
						                 groupe.getGroupe_nom(), 
						                 client.getClient_nom(), 
						                 client.getClient_prenom());
			}
		}
	};
}
