import java.awt.*;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.*;

public class CadreDeConnexion extends JFrame {
    

    //--------------------------------------------------------------------------
    // Méthode peremttant de charger(récupérer) l'image îcone depuis Ressources
    // -------------------------------------------------------------------------
    private Image chargerImageDepuisRessource(String cheminRessource) {
        // Cette méthode doit seulement charger l'image, pas rappeler elle-même.
        try {
            URL url = getClass().getResource(cheminRessource);
            if (url != null) {
                return ImageIO.read(url);
            }
            System.err.println("Ressource introuvable : " + cheminRessource);
        } catch (Exception e) {
            System.err.println("Erreur chargement image : " + e.getMessage());
        }
        return null;
    }

    public CadreDeConnexion() {
        
        // Image de fond de la page de connexion
        Background panelBackground = null;

        // 1. On change l'icône de CETTE fenêtre (this)
        Image imageConnexion = chargerImageDepuisRessource("/images/icone.png");
        if (imageConnexion != null) {
            // On applique la même image comme icône de la fenêtre
            this.setIconImage(imageConnexion);
            // On prépare aussi le fond pour le panneau de connexion
            panelBackground = new Background(imageConnexion);
        }

        // 2. Configuration de base
        setTitle("ZENITH FLUX");
        setSize(800, 600);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLocationRelativeTo(null); // Centre la fenêtre
        
        // 2. Style du panneau principal (Gris foncé)
        // On utilise ZoneDessin pour pouvoir dessiner l'image en fond
        JPanel panel = new ZoneDessin(panelBackground);
        panel.setLayout(new GridBagLayout());
        setContentPane(panel);

        // Conteneur pour les éléments (pour les empiler verticalement)
        Box box = Box.createVerticalBox();

        // 4. Création des composants
        JLabel titre = new JLabel("CONNEXION");
        titre.setForeground(Color.WHITE);
        titre.setFont(new Font("Arial", Font.BOLD, 24));
        titre.setAlignmentX(Component.CENTER_ALIGNMENT);

        JTextField userField = new JTextField(15);
        userField.setMaximumSize(new Dimension(250, 30));
        
        JPasswordField passField = new JPasswordField(15);
        passField.setMaximumSize(new Dimension(250, 30));

        JButton loginBtn = BoutonsManager.creerBoutonConnexion(userField, passField, this);

        // 5. Ajout des composants avec des espaces (Struts)
        box.add(titre);
        box.add(Box.createVerticalStrut(30)); // Espace
        box.add(new JLabel("<html><font color='white'>Utilisateur :</font></html>"));
        box.add(userField);
        box.add(Box.createVerticalStrut(15));
        box.add(new JLabel("<html><font color='white'>Mot de passe :</font></html>"));
        box.add(passField);
        box.add(Box.createVerticalStrut(30));
        box.add(loginBtn);
        box.add(Box.createVerticalStrut(10));

        JButton createBtn = BoutonsManager.creerBoutonCreerCompte(this);
        box.add(createBtn);

        panel.add(box); // Ajoute la boîte au centre du GridBagLayout

        setVisible(true);
    }
}
