package controler.gestion;

import language.Language;
import view.vueGestionArticle.VueGestionAjouterArticle;
import view.vueGestionArticle.VueGestionModifierArticle;
import view.vueGestionConstante.VueGestionConstante;

import commander.Commander;
import controler.Message;

import database.crud.ConstanteCrud;
import database.dataset.Constante;

/**
 * 
 * @author Alfredo Toyo
 *
 */
public class ControlerGestionConstante {
	public static final Message reveil = new Message(){
		public void trigger(Object caster) throws Exception {
			if (!(caster instanceof VueGestionConstante))
				return;
			VueGestionConstante vue = (VueGestionConstante)caster;
			vue.ClearInfo();
			ConstanteCrud constanteCrud = new ConstanteCrud(Commander.getInstance().getConnectionBD());
			Constante constante = constanteCrud.readById(1);
			vue.AddDataToFields(constante.getConstante_noTps(), 
								constante.getConstante_noTvq(), 
								constante.getConstante_neq(), 
								constante.getconstante_messagefacture());
		}
	};

	public static final Message enregistrer = new Message(){
		public void trigger(Object caster) throws Exception {
			if (!(caster instanceof VueGestionConstante))
				return;
			VueGestionConstante vue = (VueGestionConstante)caster;
			
			if(!vue.isInputDataValid())
				return;
			
			ConstanteCrud constanteCrud = new ConstanteCrud(Commander.getInstance().getConnectionBD());
			
			String noTps   = vue.getTextFieldNumeroTPS();
			String noTvq   = vue.getTextFieldNumeroTVQ();
			String neq     = vue.getTextFieldNeq();
			String message = vue.getTextAreaMessageFacture();
			
			Constante constante = new Constante(1, noTps, noTvq, neq, message);
			constanteCrud.update(constante);
			
			vue.ClearInfo();
			constante = constanteCrud.readById(1);
			vue.AddDataToFields(constante.getConstante_noTps(), 
								constante.getConstante_noTvq(), 
								constante.getConstante_neq(), 
								constante.getconstante_messagefacture());
			
			Language lang = Commander.getInstance().getLanguage();
			Commander.getInstance().getVuePrincipale().setModifiedTab(lang.getPrincipaleGestion(), lang.getGestionConstantes(),false);
		}
	};
	
	public static final Message annuler = new Message(){
		public void trigger(Object caster) throws Exception {
			if (!(caster instanceof VueGestionConstante))
				return;
			VueGestionConstante vue = (VueGestionConstante)caster;
			vue.ClearInfo();
			ConstanteCrud constanteCrud = new ConstanteCrud(Commander.getInstance().getConnectionBD());
			Constante constante = constanteCrud.readById(1);
			vue.AddDataToFields(constante.getConstante_noTps(), 
								constante.getConstante_noTvq(), 
								constante.getConstante_neq(), 
								constante.getconstante_messagefacture());
			
			Language lang = Commander.getInstance().getLanguage();
			Commander.getInstance().getVuePrincipale().setModifiedTab(lang.getPrincipaleGestion(), lang.getGestionConstantes(),false);
		}
	};
	
	public static final Message dataChanged = new Message(){
		public void trigger(Object caster) throws Exception {
			if (!(caster instanceof VueGestionConstante))
				return;
			
			Language lang = Commander.getInstance().getLanguage();
			Commander.getInstance().getVuePrincipale().setModifiedTab(lang.getPrincipaleGestion(), lang.getGestionConstantes(),true);
		}
	};
}
