package vue;

import java.util.List;

import architecture.Controleur;
import architecture.Vue;
import controleur.ControleurCaptures;
import controleur.Journal;
import dao.AnneeDAO;
import dao.JourDAO;
import dao.MoisDAO;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import modele.StatistiquesAnnee;
import modele.StatistiquesJour;
import modele.StatistiquesMois;
import javafx.fxml.FXML;
import javafx.scene.control.Label;
import javafx.scene.chart.StackedAreaChart;
import javafx.scene.chart.BarChart;
import javafx.scene.chart.PieChart;


public class VueCaptures extends Vue {

	protected ControleurCaptures controleur;
	protected static VueCaptures instance = null; 
	public static VueCaptures getInstance() {if(null==instance)instance = new VueCaptures();return VueCaptures.instance;}; 
	
	private Label labelJourMesureMoyenne;
	private Label labelMoisMesureMoyenne;
	private Label labelAnneeMesureMoyenne;

	private StackedAreaChart<?, ?> area_chart;
	private BarChart<?, ?> bar_chart;
	private PieChart pie_chart;
	
	private VueCaptures() 
	{
		super("captures.fxml",VueCaptures.class,1300,800); 
		super.controleur = this.controleur = new ControleurCaptures();
		Journal.ecrire(Journal.NIVEAU.ROULEMENT, "new VueCaptures()");
		
		labelJourMesureMoyenne = (Label) lookup("#labelJourMesureMoyenne");
		labelMoisMesureMoyenne = (Label) lookup("#labelMoisMesureMoyenne");
		labelAnneeMesureMoyenne = (Label) lookup("#labelAnneeMesureMoyenne");
	}
	public Controleur getControleur() {return this.controleur;}
	public void activerControles() {super.activerControles();}
	
	public void afficherStatistiquesCaptures()
	{	
		Journal.ecrire(Journal.NIVEAU.ROULEMENT, "VueCaptures.afficherStatistiquesCaptures()");
		
		JourDAO jourDao = new JourDAO();
		MoisDAO moisDao = new MoisDAO();
		AnneeDAO anneeDao = new AnneeDAO();
		
		List<StatistiquesJour> statistiquesJour = jourDao.lireStatistiquesJour(2026, 3, 5);
		List<StatistiquesMois> statistiquesMois = moisDao.lireStatistiquesMois(2026, 3);
		List<StatistiquesAnnee> statistiquesAnnee = anneeDao.lireStatistiquesAnnee(2026);
		
		labelJourMesureMoyenne.setText(String.valueOf(statistiquesJour.get(0).getJourMesureMoyenne()));
		labelMoisMesureMoyenne.setText(String.valueOf(statistiquesMois.get(0).getMoisMesureMoyenne()));
		labelAnneeMesureMoyenne.setText(String.valueOf(statistiquesAnnee.get(0).getAnneeMesureMoyenne()));
	}
}
