Ajout statusChanged

This commit is contained in:
Justine Yannis 2022-10-21 17:21:36 +02:00
parent 1e9754aafa
commit b7eb8af07f
5 changed files with 52 additions and 1 deletions

View File

@ -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
}
}

View File

@ -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);
}
}
}

View File

@ -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);
}

View File

@ -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;
}
}

View File

@ -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() {