package view.vueRapportStatistique;

import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.sql.Date;
import java.util.Calendar;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

import language.Francais;
import language.Language;
import view.Formulaire;
import view.tool.dateField.DateField;


public class VueRapportStatistique extends Formulaire{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = -5588778162108662817L;

	private JPanel panelSearchFields,
				   panelSearchGrid;
	
	private GridBagConstraints constraint;
	
	private JLabel labelDebut,
						labelFin;
	
	private JLabel labelStat;
	
	private DateField dateDebut,
					  dateFin;
	
	private Language lang;
	
	public VueRapportStatistique(Language lang) throws Exception
	{
		super();
		initVariable(lang);
		initComponents();
		initListener();
		setMnemonic();
	}
	
	/**
	* @throws Exception 
	* 
	*/
	private void initVariable(Language lang) throws Exception
	{
		this.lang = lang;
		
		panelSearchFields     = new JPanel(new FlowLayout());
		panelSearchGrid       = new JPanel(new GridBagLayout());
//		panelButtons          = new JPanel();
		
		constraint = new GridBagConstraints();
		
		labelDebut 		  = new JLabel(lang.getRapportStatistiqueDe().replaceAll("%", ""));
		labelFin		  = new JLabel(lang.getRapportStatistiqueA().replaceAll("%", ""));
		labelStat		  = new JLabel(lang.getRapportStatistiqueMoyenne());
		
		dateDebut 		  = DateField.fromCalendar(Calendar.getInstance());
		dateFin 		  = DateField.fromCalendar(Calendar.getInstance());
		
//		buttonImprimer = new JButton(lang.getRapportStatistiqueImprimer().replaceAll("%", ""));
//		connecterUneAction(buttonImprimer, ControlerRapportStatistique.imprimer);
//		addButton(lang.getRapportStatistiqueImprimer(), ControlerRapportStatistique.imprimer);
	}
	
	/**
	* 
	*/
	private void initComponents()
	{
		constraint.fill = GridBagConstraints.HORIZONTAL;
		constraint.weightx = 1.0;
		constraint.weighty = 1.0;
		constraint.gridx = 0;
		constraint.gridy = 0;
		panelSearchFields.add(labelDebut, constraint);
		
		constraint.fill = GridBagConstraints.HORIZONTAL;
		constraint.weightx = 1.0;
		constraint.weighty = 1.0;
		constraint.gridx = 1;
		constraint.gridy = 0;
		panelSearchFields.add(dateDebut, constraint);
		
		constraint.fill = GridBagConstraints.HORIZONTAL;
		constraint.weightx = 1.0;
		constraint.weighty = 1.0;
		constraint.gridx = 2;
		constraint.gridy = 0;
		panelSearchFields.add(labelFin, constraint);
		
		constraint.fill = GridBagConstraints.HORIZONTAL;
		constraint.weightx = 1.0;
		constraint.weighty = 1.0;
		constraint.gridx = 3;
		constraint.gridy = 0;
		panelSearchFields.add(dateFin, constraint);
		
		constraint.fill = GridBagConstraints.HORIZONTAL;
		constraint.weightx = 1.0;
		constraint.weighty = 1.0;
		constraint.gridx = 0;
		constraint.gridy = 0;
		panelSearchGrid.add(labelStat,constraint);
		
		constraint.fill = GridBagConstraints.HORIZONTAL;
		constraint.anchor  = GridBagConstraints.EAST;
		constraint.weightx = 1.0;
		constraint.weighty = 1.0;
		constraint.gridx = 0;
		constraint.gridy = 0;
//		panelButtons.add(buttonImprimer, constraint);
		
		constraint.fill    = GridBagConstraints.NONE;
		constraint.anchor  = GridBagConstraints.NORTHWEST;
		constraint.insets  = new Insets(10, 3, 10, 3);
		constraint.weightx = 1.0;
		constraint.weighty = 0;
		constraint.gridx   = 0;
		constraint.gridy   = 0;
		add(panelSearchFields,constraint);
		
		constraint.fill    = GridBagConstraints.HORIZONTAL;
		constraint.insets  = new Insets(10, 3, 10, 3);
		constraint.weightx = 1.0;
		constraint.weighty = 1.0;
		constraint.gridx   = 0;
		constraint.gridy   = 1;
		add(panelSearchGrid,constraint);
		
		constraint.fill = GridBagConstraints.NONE;
		constraint.anchor = GridBagConstraints.SOUTHEAST;
		constraint.insets  = new Insets(10, 3, 10, 3);
		constraint.weightx = 1.0;
		constraint.weighty = 1.0;
		constraint.gridx = 0;
		constraint.gridy = 2;
//		add(panelButtons,constraint);
	}
	
	/**
	* 
	*/
	private void initListener()
	{		
//		buttonImprimer.addActionListener(this);
	}
	
	/**
	* 
	*/	
	private void setMnemonic()
	{
		labelDebut.setDisplayedMnemonic(lang.getRapportStatistiqueDe().charAt(lang.getRapportStatistiqueDe().indexOf('%')+1));
		labelDebut.setLabelFor(dateDebut);
		
		labelFin.setDisplayedMnemonic(lang.getRapportStatistiqueA().charAt(lang.getRapportStatistiqueA().indexOf('%')+1));
		labelFin.setLabelFor(dateFin);
		
//		buttonImprimer.setMnemonic(lang.getRapportStatistiqueImprimer().charAt(lang.getRapportStatistiqueImprimer().indexOf('%')+1));
	}
	
	public String getDateDebut()
	{
		return dateDebut.getDate().toString();
	}
	
	public String getDateFin()
	{
		return dateFin.getDate().toString();
	}
	
	public void setDateDebut(Date date)
	{
		dateDebut.setDate(date);
	}
	
	public void setDateFin(Date date)
	{
		dateFin.setDate(date);
	}
	
	public void setStat(Integer stat)
	{
		labelStat.setText("Moyenne de chambre occupee par jour : "+stat);
	}

	/**
	* @param args
	* @throws Exception 
	*/
	public static void main(String[] args) throws Exception 
	{
		JFrame a = new JFrame("window");
		
		VueRapportStatistique test = new VueRapportStatistique(Francais.getInstance());
		a.setLayout(new GridBagLayout());
		
		test.setStat(12);
		
		GridBagConstraints contraint = new GridBagConstraints();
		contraint.fill = GridBagConstraints.BOTH;
		contraint.weightx = 1.0;
		contraint.weighty = 1.0;
		contraint.gridx = 0;
		contraint.gridy = 0;
		
		a.add(test,contraint);
		a.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		a.pack();
		a.setVisible(true);
	}
}
