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

public class Victoire {

    public static JLabel scoreLabel;
    public static JLabel countryLabel;

    public static void refresh() {
        try {
            Class.forName("org.mariadb.jdbc.Driver");
        } catch (ClassNotFoundException ex) {
            System.err.println("MariaDB driver not found");
            return;
        }
        
        Connection cnx;
        try {
            cnx = DriverManager.getConnection("jdbc:mariadb://dwarves.iut-fbleau.fr/horville", "horville", "a5gc95");
        } catch (SQLException ex) {
            System.err.println("Unable to access Database.");
            return;
        }
        
        try {
            PreparedStatement req = cnx.prepareStatement("SELECT Nom, SUM(Points) FROM Vote LEFT JOIN Pays ON Vote.Competiteur = Pays.ID GROUP BY Nom;");
            req.executeUpdate();

            int maxPoints = 0;
            String country = "";
            ResultSet rs = req.executeQuery();
            while (rs.next()) {
                int score = rs.getInt(2);
                if (score > maxPoints) {
                    country = rs.getString(1);
                    maxPoints = score;
                }
            }

            if (country != "") {
                countryLabel.setText(country);
                scoreLabel.setText(Integer.toString(maxPoints));
            }

            


            rs.close();
            req.close();
            
        } catch (SQLException ex) {
            System.err.println("SQL Request exception.");
            System.err.println (ex);
        }

        try {
            cnx.close();
        } catch (SQLException ex) {
            System.err.println("Unable to close connection.");
        }
    }

    public static void main(String[] args) {
        JFrame window = new JFrame("Victoire");
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.setSize(300, 300);
        window.setLocation(200, 200);

        JButton refreshBT = new JButton("⟳");
        refreshBT.addActionListener(new RefreshListener());
        window.add(refreshBT, BorderLayout.SOUTH);
        window.setVisible(true);

        countryLabel = new JLabel("...", JLabel.CENTER);
        scoreLabel = new JLabel("0", JLabel.CENTER);

        window.add(countryLabel, BorderLayout.NORTH);
        window.add(scoreLabel, BorderLayout.CENTER);

        Victoire.refresh();
    }
}