From b7eb8af07f1998eb333b6a75b0f91aec4a3ab0dd Mon Sep 17 00:00:00 2001 From: Justine Yannis Date: Fri, 21 Oct 2022 17:21:36 +0200 Subject: [PATCH] Ajout statusChanged --- .../Controller/ModelEventListener.java | 6 +++++ .../Event/AbstractGridInitiater.java | 14 +++++++++++ .../Event/GridChangedListener.java | 6 +++++ .../projetAgile/Event/StatusEvent.java | 25 +++++++++++++++++++ .../projetAgile/Model/GrilleModel.java | 2 +- 5 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 projetAgile/src/fr/iutfbleau/projetAgile/Event/StatusEvent.java diff --git a/projetAgile/src/fr/iutfbleau/projetAgile/Controller/ModelEventListener.java b/projetAgile/src/fr/iutfbleau/projetAgile/Controller/ModelEventListener.java index c24ff85..b232327 100644 --- a/projetAgile/src/fr/iutfbleau/projetAgile/Controller/ModelEventListener.java +++ b/projetAgile/src/fr/iutfbleau/projetAgile/Controller/ModelEventListener.java @@ -20,4 +20,10 @@ public class ModelEventListener implements GridChangedListener { public void playerChanged(PlayerEvent e) { this.panel.changeLabel(e.getNewPlayer()); } + + @Override + public void statusChanged(StatusEvent e) { + // TODO Auto-generated method stub + + } } diff --git a/projetAgile/src/fr/iutfbleau/projetAgile/Event/AbstractGridInitiater.java b/projetAgile/src/fr/iutfbleau/projetAgile/Event/AbstractGridInitiater.java index fc7b046..85dc94e 100644 --- a/projetAgile/src/fr/iutfbleau/projetAgile/Event/AbstractGridInitiater.java +++ b/projetAgile/src/fr/iutfbleau/projetAgile/Event/AbstractGridInitiater.java @@ -1,5 +1,6 @@ package fr.iutfbleau.projetAgile.Event; import javax.swing.event.EventListenerList; +import fr.iutfbleau.projetAgile.Utils.GameStatus; public abstract class AbstractGridInitiater { @@ -57,4 +58,17 @@ public abstract class AbstractGridInitiater { listener.playerChanged(event); } } + + /** + * Notifie tous les listeners lorsque le status du jeu change + * @param status Le nouveau status + */ + protected void fireStatusChanged(GameStatus status) { + StatusEvent event = null; + for(GridChangedListener listener : getGridListeners()) { + if(event == null) + event = new StatusEvent(status); + listener.statusChanged(event); + } + } } diff --git a/projetAgile/src/fr/iutfbleau/projetAgile/Event/GridChangedListener.java b/projetAgile/src/fr/iutfbleau/projetAgile/Event/GridChangedListener.java index 27e5238..c1a9309 100644 --- a/projetAgile/src/fr/iutfbleau/projetAgile/Event/GridChangedListener.java +++ b/projetAgile/src/fr/iutfbleau/projetAgile/Event/GridChangedListener.java @@ -15,4 +15,10 @@ public interface GridChangedListener extends EventListener{ */ void playerChanged(PlayerEvent e); + /** + * Méthode invoqué lorsque le tour du joueur est modifié + * @param e Evenement contenant l'ancien joueur et le nouveau + */ + void statusChanged(StatusEvent e); + } diff --git a/projetAgile/src/fr/iutfbleau/projetAgile/Event/StatusEvent.java b/projetAgile/src/fr/iutfbleau/projetAgile/Event/StatusEvent.java new file mode 100644 index 0000000..1958926 --- /dev/null +++ b/projetAgile/src/fr/iutfbleau/projetAgile/Event/StatusEvent.java @@ -0,0 +1,25 @@ +package fr.iutfbleau.projetAgile.Event; + +import fr.iutfbleau.projetAgile.Utils.GameStatus; + +public class StatusEvent { + private GameStatus status; + + /** + * Evenement représentant le changement dans la grille + * @param column la colonne modifié + * @param row la ligne modifié + * @param player le joueur qui a joué + */ + public StatusEvent(GameStatus status) { + this.status = status; + } + + /** + * Retourne le joueur qui a joué + * @return Le joueur qui a joué + */ + public GameStatus getStatus() { + return this.status; + } +} diff --git a/projetAgile/src/fr/iutfbleau/projetAgile/Model/GrilleModel.java b/projetAgile/src/fr/iutfbleau/projetAgile/Model/GrilleModel.java index feef6a1..18f836e 100644 --- a/projetAgile/src/fr/iutfbleau/projetAgile/Model/GrilleModel.java +++ b/projetAgile/src/fr/iutfbleau/projetAgile/Model/GrilleModel.java @@ -149,7 +149,7 @@ public class GrilleModel extends AbstractGridInitiater{ public void setPartyStatus(GameStatus gameStatus) { this.gameStatus = gameStatus; - //avertir un observateur + fireStatusChanged(this.gameStatus); } public GameStatus getGameStatus() {