package fr.monkhanny.dorfromantik.gui;

import javax.swing.*;
import java.awt.*;

// @TODO : MODIFIER CAR C'EST PAS BEAU + BDD
public class LeaderboardByTier extends Leaderboard {

    public LeaderboardByTier() {
        super();
        refresh(); // Charge les données initiales
    }

    @Override
    public void refresh() {
        removeAll(); // Supprime tout contenu existant
        setBackground(new Color(64, 0, 128));

        // Titre
        JLabel titleLabel = new JLabel("CLASSEMENT PAR TRANCHE");
        titleLabel.setForeground(Color.WHITE);
        titleLabel.setFont(new Font("Arial", Font.BOLD, 24));
        titleLabel.setHorizontalAlignment(SwingConstants.CENTER);
        add(titleLabel, BorderLayout.NORTH);

        // Contenu
        JPanel tierPanel = new JPanel();
        tierPanel.setLayout(new BoxLayout(tierPanel, BoxLayout.Y_AXIS));
        tierPanel.setBackground(new Color(64, 0, 128));

        // Exemple de tranche
        int totalPlayers = 1000;
        int rank = 237; // Exemple : rang du joueur
        int tierSize = totalPlayers / 10;
        int tier = (rank - 1) / tierSize + 1;

        // Label indiquant la tranche dans laquelle le joueur se trouve
        JLabel infoLabel = new JLabel("Vous êtes dans la tranche : " + tier);
        infoLabel.setFont(new Font("Arial", Font.PLAIN, 18));
        infoLabel.setForeground(Color.WHITE);
        infoLabel.setAlignmentX(CENTER_ALIGNMENT);

        // Pourcentage du joueur
        double percentage = (double) rank / totalPlayers * 100;
        JLabel percentageLabel = new JLabel(String.format("Vous faites partie des %.2f%% des joueurs", percentage));
        percentageLabel.setFont(new Font("Arial", Font.PLAIN, 18));
        percentageLabel.setForeground(Color.WHITE);
        percentageLabel.setAlignmentX(CENTER_ALIGNMENT);

        // Ajouter les labels à la JPanel
        tierPanel.add(Box.createVerticalStrut(20));
        tierPanel.add(infoLabel);
        tierPanel.add(percentageLabel);

        // Ajouter le diagramme en barres pour les tranches
        LeaderboardBarChartPanel barChartPanel = new LeaderboardBarChartPanel(totalPlayers, rank);
        tierPanel.add(Box.createVerticalStrut(20));  // Espacement
        tierPanel.add(barChartPanel);

        add(tierPanel, BorderLayout.CENTER);
        revalidate();
        repaint();
    }
}
