// Path: Loto/src/main/java/com/mollin/loto/gui/main/utils/ScreenFormat.java
// public enum ScreenFormat {
//     /**
//      * Ecran au format 4:3
//      */
//     _4_3,
//     /**
//      * Ecran au format 16:9
//      */
//     _16_9
// }


import com.mollin.loto.gui.main.utils.ScreenFormat;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.TextFormatter;
import javafx.scene.control.Tooltip;
import javafx.scene.image.Image;
import javafx.scene.layout.*;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.util.Duration;
import java.lang.reflect.Field;
import java.util.function.UnaryOperator;
package com.mollin.loto.gui.utils;



/**
 * Classe contenant les méthodes utilitaires
 *
 * @author MOLLIN Florian
 */
public class Utils {
    /**
     * Constructeur privé car classe utilitaire
     */
    private Utils() {
    }

    /**
     * Css permettant de masquer les séparateurs (des splitPanes)
     */
    private static final String DISABLE_SPLIT_PANE_SEPARATOR_CSS = "DisableSplitPaneSeparator.css";
    /**
     * Nom de l'icone par defaut de l'application
     */
    private static final String ICON = "icon.png";

    /**
     * Permet de masquer ou de faire apparaitre les séparateurs des splitPanes.
     *
     * @param scene   La scene (pour le chargement du css)
     * @param display Vrai pour afficher les séparateurs, faux sinon
     */
    public static void displaySplitPaneSeparator(Scene scene, boolean display) {
        if (display) {
            scene.getStylesheets().remove(Utils.class.getResource(DISABLE_SPLIT_PANE_SEPARATOR_CSS).toExternalForm());
        } else {
            scene.getStylesheets().add(Utils.class.getResource(DISABLE_SPLIT_PANE_SEPARATOR_CSS).toExternalForm());
        }
    }

    /**
     * Crée un fond de couleur unie
     *
     * @param color La couleur du fond
     * @return Le fond de couleur donnée
     */
    public static Background createBackground(Color color) {
        return new Background(new BackgroundFill(color, CornerRadii.EMPTY, Insets.EMPTY));
    }

    /**
     * Crée une bordure de couleur unie
     *
     * @param color       La couleur de la bordure
     * @param borderWidth La taille de la bordure
     * @return Une bordure de couleur unie
     */
    public static Border createBorder(Color color, int borderWidth) {
        return new Border(new BorderStroke(color, BorderStrokeStyle.SOLID, CornerRadii.EMPTY, new BorderWidths(borderWidth)));
    }

    /**
     * Renvoi le format courant de l'écran
     *
     * @param stage Le stage
     * @return La taille de l'écran
     */
// Path: Loto/src/main/java/com/mollin/loto/gui/main/utils/ScreenFormat.java
// public enum ScreenFormat {
//     /**
//      * Ecran au format 4:3
//      */
//     _4_3,
//     /**
//      * Ecran au format 16:9
//      */
//     _16_9
// }


// Path: Loto/src/main/java/com/mollin/loto/gui/utils/Utils.java
import com.mollin.loto.gui.main.utils.ScreenFormat;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.TextFormatter;
import javafx.scene.control.Tooltip;
import javafx.scene.image.Image;
import javafx.scene.layout.*;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.util.Duration;
import java.lang.reflect.Field;
import java.util.function.UnaryOperator;

package com.mollin.loto.gui.utils;



/**
 * Classe contenant les méthodes utilitaires
 *
 * @author MOLLIN Florian
 */
public class Utils {
    /**
     * Constructeur privé car classe utilitaire
     */
    private Utils() {
    }

    /**
     * Css permettant de masquer les séparateurs (des splitPanes)
     */
    private static final String DISABLE_SPLIT_PANE_SEPARATOR_CSS = "DisableSplitPaneSeparator.css";
    /**
     * Nom de l'icone par defaut de l'application
     */
    private static final String ICON = "icon.png";

    /**
     * Permet de masquer ou de faire apparaitre les séparateurs des splitPanes.
     *
     * @param scene   La scene (pour le chargement du css)
     * @param display Vrai pour afficher les séparateurs, faux sinon
     */
    public static void displaySplitPaneSeparator(Scene scene, boolean display) {
        if (display) {
            scene.getStylesheets().remove(Utils.class.getResource(DISABLE_SPLIT_PANE_SEPARATOR_CSS).toExternalForm());
        } else {
            scene.getStylesheets().add(Utils.class.getResource(DISABLE_SPLIT_PANE_SEPARATOR_CSS).toExternalForm());
        }
    }

    /**
     * Crée un fond de couleur unie
     *
     * @param color La couleur du fond
     * @return Le fond de couleur donnée
     */
    public static Background createBackground(Color color) {
        return new Background(new BackgroundFill(color, CornerRadii.EMPTY, Insets.EMPTY));
    }

    /**
     * Crée une bordure de couleur unie
     *
     * @param color       La couleur de la bordure
     * @param borderWidth La taille de la bordure
     * @return Une bordure de couleur unie
     */
    public static Border createBorder(Color color, int borderWidth) {
        return new Border(new BorderStroke(color, BorderStrokeStyle.SOLID, CornerRadii.EMPTY, new BorderWidths(borderWidth)));
    }

    /**
     * Renvoi le format courant de l'écran
     *
     * @param stage Le stage
     * @return La taille de l'écran
     */
    public static ScreenFormat getScreenFormat(Stage stage) {