diff --git a/src/fr/monkhanny/dorfromantik/listeners/CloseButtonListener.java b/src/fr/monkhanny/dorfromantik/listeners/CloseButtonListener.java index 70d2012..a5c3817 100644 --- a/src/fr/monkhanny/dorfromantik/listeners/CloseButtonListener.java +++ b/src/fr/monkhanny/dorfromantik/listeners/CloseButtonListener.java @@ -6,15 +6,41 @@ import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +/** + * Listener pour gérer le bouton de fermeture dans la fenêtre des paramètres. + * Lors de l'action, le menu principal est réaffiché et la fenêtre des paramètres est cachée. + * @version 1.0 + * @author Khalid CHENOUNA + */ public class CloseButtonListener implements ActionListener { + + /** + * Le menu principal à réafficher lorsque le bouton est activé. + */ private MainMenu mainMenu; + + /** + * La fenêtre des paramètres à fermer lorsque le bouton est activé. + */ private JFrame settingsFrame; + /** + * Constructeur pour initialiser le listener avec le menu principal et la fenêtre des paramètres. + * + * @param mainMenu le menu principal à rendre visible. + * @param settingsFrame la fenêtre des paramètres à cacher lors de l'action. + */ public CloseButtonListener(MainMenu mainMenu, JFrame settingsFrame) { this.mainMenu = mainMenu; this.settingsFrame = settingsFrame; } + /** + * Méthode appelée lorsqu'une action est effectuée sur le bouton de fermeture. + * Rétablit la visibilité du menu principal et cache la fenêtre des paramètres. + * + * @param e l'événement d'action déclenché par le bouton. + */ @Override public void actionPerformed(ActionEvent e) { // Réafficher la fenêtre du menu principal diff --git a/src/fr/monkhanny/dorfromantik/listeners/CloseWindowListener.java b/src/fr/monkhanny/dorfromantik/listeners/CloseWindowListener.java index 0babcc5..6ff2d79 100644 --- a/src/fr/monkhanny/dorfromantik/listeners/CloseWindowListener.java +++ b/src/fr/monkhanny/dorfromantik/listeners/CloseWindowListener.java @@ -6,16 +6,43 @@ import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.*; + +/** + * Listener pour gérer la fermeture d'une fenêtre secondaire et réafficher le menu principal. + * Lorsque la fenêtre surveillée est fermée, ce listener rend visible le menu principal + * et cache la fenêtre en cours. + * @version 1.0 + * @author Khalid CHENOUNA + */ public class CloseWindowListener extends WindowAdapter { + /** + * Le menu principal à réafficher lorsque la fenêtre est fermée. + */ private MainMenu mainMenu; + + /** + * La fenêtre à cacher lors de sa fermeture. + */ private JFrame frame; + /** + * Constructeur pour initialiser le listener avec le menu principal et la fenêtre surveillée. + * + * @param mainMenu le menu principal à rendre visible. + * @param frame la fenêtre surveillée à cacher lors de sa fermeture. + */ public CloseWindowListener(MainMenu mainMenu, JFrame frame) { this.mainMenu = mainMenu; this.frame = frame; } + /** + * Méthode appelée lorsque la fenêtre est en cours de fermeture. + * Rétablit la visibilité du menu principal et cache la fenêtre surveillée. + * + * @param e l'événement de fermeture de la fenêtre. + */ @Override public void windowClosing(WindowEvent e) { // Réafficher la fenêtre du menu principal diff --git a/src/fr/monkhanny/dorfromantik/listeners/EscapeMenuCloseListener.java b/src/fr/monkhanny/dorfromantik/listeners/EscapeMenuCloseListener.java index 0dfd615..7403b31 100644 --- a/src/fr/monkhanny/dorfromantik/listeners/EscapeMenuCloseListener.java +++ b/src/fr/monkhanny/dorfromantik/listeners/EscapeMenuCloseListener.java @@ -5,7 +5,22 @@ import java.awt.event.WindowEvent; import fr.monkhanny.dorfromantik.Options; + +/** + * Listener pour gérer la fermeture du menu d'échappement (pause). + * Lorsque la fenêtre du menu d'échappement est fermée, ce listener met à jour l'état du jeu + * pour indiquer qu'il n'est plus en pause. + * @version 1.0 + * @author Moncef STITI + */ public class EscapeMenuCloseListener extends WindowAdapter { + + /** + * Méthode appelée lorsque la fenêtre du menu d'échappement est en cours de fermeture. + * Met à jour l'état d'**Options.isPaused** pour indiquer que le jeu n'est plus en pause. + * + * @param e l'événement de fermeture de la fenêtre. + */ @Override public void windowClosing(WindowEvent e) { Options.isPaused = false; diff --git a/src/fr/monkhanny/dorfromantik/listeners/GameArrowKeyListener.java b/src/fr/monkhanny/dorfromantik/listeners/GameArrowKeyListener.java index 7aff6d0..09dee67 100644 --- a/src/fr/monkhanny/dorfromantik/listeners/GameArrowKeyListener.java +++ b/src/fr/monkhanny/dorfromantik/listeners/GameArrowKeyListener.java @@ -5,13 +5,36 @@ import fr.monkhanny.dorfromantik.game.Board; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; + +/** + * Listener pour gérer les touches fléchées permettant de déplacer le plateau de jeu. + * Cette classe intercepte les événements de clavier pour déplacer le plateau dans les + * directions haut, bas, gauche et droite en fonction des flèches appuyées. + * @version 1.0 + * @author Moncef STITI + */ public class GameArrowKeyListener extends KeyAdapter { + + /** + * Le plateau de jeu à manipuler lors des déplacements. + */ private Board board; + /** + * Constructeur pour initialiser le listener avec le plateau de jeu. + * + * @param board le plateau de jeu à déplacer en réponse aux événements de touches fléchées. + */ public GameArrowKeyListener(Board board) { this.board = board; } + /** + * Méthode appelée lorsqu'une touche est enfoncée. + * Gère les déplacements du plateau selon la touche fléchée pressée. + * + * @param e l'événement de la touche pressée. + */ @Override public void keyPressed(KeyEvent e) { switch (e.getKeyCode()) { diff --git a/src/fr/monkhanny/dorfromantik/listeners/GameMainMenuButtonListener.java b/src/fr/monkhanny/dorfromantik/listeners/GameMainMenuButtonListener.java index 146a20d..070b45e 100644 --- a/src/fr/monkhanny/dorfromantik/listeners/GameMainMenuButtonListener.java +++ b/src/fr/monkhanny/dorfromantik/listeners/GameMainMenuButtonListener.java @@ -6,13 +6,34 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; +/** + * Listener pour gérer le clic sur le bouton de retour au menu principal dans le jeu. + * Cette classe cache la fenêtre actuelle du jeu et réinitialise l'état du jeu en appelant la méthode `Main.resetGame`. + * @version 1.0 + * @author Moncef STITI + */ public class GameMainMenuButtonListener implements ActionListener { + + /** + * La fenêtre principale du jeu à cacher lors du retour au menu principal. + */ private JFrame gameFrame; + /** + * Constructeur pour initialiser le listener avec la fenêtre du jeu. + * + * @param gameFrame la fenêtre principale du jeu à manipuler. + */ public GameMainMenuButtonListener(JFrame gameFrame) { this.gameFrame = gameFrame; } + /** + * Méthode appelée lorsqu'une action est déclenchée, comme un clic sur le bouton du menu principal. + * Cette méthode cache la fenêtre du jeu et appelle la méthode statique pour réinitialiser le jeu. + * + * @param e l'événement de l'action déclenchée. + */ @Override public void actionPerformed(ActionEvent e) { this.gameFrame.setVisible(false); diff --git a/src/fr/monkhanny/dorfromantik/listeners/GameModeFilterButtonActionListener.java b/src/fr/monkhanny/dorfromantik/listeners/GameModeFilterButtonActionListener.java index c6ec79e..b1e3d2c 100644 --- a/src/fr/monkhanny/dorfromantik/listeners/GameModeFilterButtonActionListener.java +++ b/src/fr/monkhanny/dorfromantik/listeners/GameModeFilterButtonActionListener.java @@ -5,13 +5,36 @@ import java.awt.event.ActionListener; import fr.monkhanny.dorfromantik.gui.GameModeSelectionPanel; + +/** + * Listener pour gérer les clics sur le bouton de filtrage dans le panneau de sélection du mode de jeu. + * Cette classe permet de réinitialiser la page de sélection à la première page lors de l'application d'un filtre + * et de charger les séries correspondantes à cette page. + * @version 1.0 + * @author Lenny FOULOU + */ public class GameModeFilterButtonActionListener implements ActionListener { + + /** + * Le panneau de sélection du mode de jeu. + */ private GameModeSelectionPanel panel; + /** + * Constructeur pour initialiser le listener avec le panneau de sélection du mode de jeu. + * + * @param panel le panneau de sélection du mode de jeu sur lequel agir. + */ public GameModeFilterButtonActionListener(GameModeSelectionPanel panel) { this.panel = panel; } + /** + * Méthode appelée lorsqu'une action est déclenchée, comme un clic sur le bouton de filtrage. + * Elle réinitialise la page actuelle à la première page et recharge les séries correspondant à cette page. + * + * @param e l'événement de l'action déclenchée. + */ @Override public void actionPerformed(ActionEvent e) { panel.setCurrentPage(1); // Reset to first page when filtering diff --git a/src/fr/monkhanny/dorfromantik/listeners/GameModeHoverEffectMouseListener.java b/src/fr/monkhanny/dorfromantik/listeners/GameModeHoverEffectMouseListener.java index 0ae6609..576fafe 100644 --- a/src/fr/monkhanny/dorfromantik/listeners/GameModeHoverEffectMouseListener.java +++ b/src/fr/monkhanny/dorfromantik/listeners/GameModeHoverEffectMouseListener.java @@ -8,17 +8,48 @@ import javax.swing.JButton; import fr.monkhanny.dorfromantik.enums.Sounds; import fr.monkhanny.dorfromantik.utils.MusicPlayer; + +/** + * Listener pour ajouter un effet visuel et sonore lors du survol et du clic sur un bouton. + * Cette classe change la couleur d'arrière-plan du bouton lorsqu'il est survolé, cliqué ou relâché, + * et joue un son lors du survol. + * @version 1.0 + * @author Lenny FOULOU, Khalid Chenouna + */ public class GameModeHoverEffectMouseListener extends MouseAdapter { + /** + * La couleur d'arrière-plan par défaut du bouton. + */ private Color defaultColor; + /** + * La couleur d'arrière-plan lorsque le bouton est survolé. + */ private Color hoverColor; + /** + * La couleur d'arrière-plan lorsque le bouton est cliqué. + */ private Color clickColor; + + /** + * Constructeur pour initialiser les couleurs d'effet du bouton. + * + * @param defaultColor la couleur d'arrière-plan par défaut du bouton. + * @param hoverColor la couleur d'arrière-plan lors du survol du bouton. + * @param clickColor la couleur d'arrière-plan lors du clic sur le bouton. + */ public GameModeHoverEffectMouseListener(Color defaultColor, Color hoverColor, Color clickColor) { this.defaultColor = defaultColor; this.hoverColor = hoverColor; this.clickColor = clickColor; } + /** + * Méthode appelée lorsque le curseur entre dans la zone du bouton. + * Elle modifie la couleur d'arrière-plan du bouton et joue un son. + * + * @param e l'événement de survol de la souris. + */ @Override public void mouseEntered(MouseEvent e) { if (e.getSource() instanceof JButton button) { @@ -28,6 +59,12 @@ public class GameModeHoverEffectMouseListener extends MouseAdapter { } } + /** + * Méthode appelée lorsque le curseur quitte la zone du bouton. + * Elle rétablit la couleur d'arrière-plan par défaut du bouton. + * + * @param e l'événement de sortie de la souris. + */ @Override public void mouseExited(MouseEvent e) { if (e.getSource() instanceof JButton button) { @@ -35,6 +72,12 @@ public class GameModeHoverEffectMouseListener extends MouseAdapter { } } + /** + * Méthode appelée lorsque le bouton est pressé. + * Elle change la couleur d'arrière-plan du bouton pour la couleur de clic. + * + * @param e l'événement de pression du bouton de la souris. + */ @Override public void mousePressed(MouseEvent e) { if (e.getSource() instanceof JButton button) { @@ -42,6 +85,12 @@ public class GameModeHoverEffectMouseListener extends MouseAdapter { } } + /** + * Méthode appelée lorsque le bouton est relâché. + * Elle remet la couleur d'arrière-plan du bouton à celle de survol. + * + * @param e l'événement de relâchement du bouton de la souris. + */ @Override public void mouseReleased(MouseEvent e) { if (e.getSource() instanceof JButton button) {