package org.Views;

import org.Controllers.TetrisBandeauControleur;
import org.Models.*;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;

public class VueTetris extends JFrame {
    private static Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    public static double tailleJFrameX = screenSize.getHeight() / 2;
    public static double tailleJFrameY = screenSize.getHeight() / 2;
    private VueGrille vueGrille;
    private VueBandeauControle vueControle;

    public VueTetris(Grille grille, Jeu jeu) {
        super("Tetris");

        this.vueGrille = new VueGrille(grille, jeu);
        this.vueControle = new VueBandeauControle();
        //TetrisBandeauControleur controleur = new TetrisBandeauControleur(vueControle);

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new BorderLayout());

        add(vueGrille, BorderLayout.CENTER);
        add(vueControle, BorderLayout.EAST);

        setSize((int) tailleJFrameX, (int) tailleJFrameY);
        setLocationRelativeTo(null);

        //listener permettanbt de redimensionner les cases de la grille
        addComponentListener(new ComponentAdapter() {
            @Override
            public void componentResized(ComponentEvent e) {
                vueGrille.resizeCases();
            }
        });

        setVisible(true);
        vueGrille.resizeCases();

        // Utilisation de la pièce L
        vueControle.afficherPieceSuivante(jeu.getPieceSuivante());
    }

    public VueBandeauControle getVueBandeauControle() {
        return this.vueControle;
    }
}
