Théorie: message du dorsal à lui-même #
Afficher le pointage sur la VueFileAttente
?
#
-
Quand ajoute un point à la partie, on voudrait aussi modifier le pointage dans le
ModeleFileAttente
- NOTE: le pointage passe à
21-16
en même temps pour les deux clients
- NOTE: le pointage passe à
Envoyer un message du dorsal à lui-même #
-
La tâche qui ajoute le point va aussi envoyer un message pour mettre à jour la file d’attente
-
Dans les tâches du dorsal:
public class ModifierPartie { public static void creerTaches(BackendTasks tasks) { tasks.taskGroup("ModifierPartie") .waitsFor(model(ModelePartie.class)) .contains(subTasks -> { ajouterPoint(subTasks); envoyerMsgAjouterScoreAuRendezVous(subTasks); // ... }); } private static void ajouterPoint(BackendTasks tasks) { tasks.task("ajouterPoint") // ... // modifier .executesAndReturnsValue(inputs -> { // ... // propager la partie vers la prochaine // tâche qui va envoyer le bon message return partie; }); } private static void envoyerMsgAjouterScoreAuRendezVous(BackendTasks subTasks) { subTasks.task("envoyerMsgAjouterScoreAuRendezVous") .waitsFor("ajouterPoint") .executes(inputs -> { ModelePartie partie = inputs.get("ajouterPoint"); partie.envoyerMsgAjouterScoreAuRendezVous(); }); }
-
Dans le
ModelePartie
:public class ModelePartie implements Model { // ... public void envoyerMsgAjouterScoreAuRendezVous() { Ntro.newMessage(MsgAjouterScoreAuRendezVous.class) .setIdRendezVous(idRendezVous) .setScoreParPosition(creerScoreParPosition()) .send(); } private Map<Position, Integer> creerScoreParPosition() { Map<Position, Integer> scoreParPosition = new HashMap<>(); for(Position position : infoJoueurParPosition.keySet()) { InfoJoueur infoJoueur = infoJoueurParPosition.get(position); infoJoueur.copierScoreDans(scoreParPosition, position); } return scoreParPosition; }