Optionnel) plusieurs parties (créées dynamiquement) #
Créer une partie spécifique à la région #
-
Ajouter le
setModelSelection
à l’envoi duMsgCreerPartie
public class RendezVousComplet extends RendezVous { // ... // modifier cette méthode public void envoyerMsgCreerPartie() { Ntro.newMessage(MsgCreerPartie.class) .setModelSelection(ModelePartie.class, getIdRendezVous()) // ajouter la sélection de modèle .setIdRendezVous(getIdRendezVous()) .setPremierJoueur(getPremierJoueur()) .setDeuxiemeJoueur(deuxiemeJoueur) .send(); }
-
Vérifier que les parties créées sont spécifiques à la région
$ sh gradlew pong
pong └── _storage ├── models │ ├── ModelePartie │ │ └── AMERIQUE¤1.json
Observer la bonne partie #
-
Utiliser
SessionPong
pour mémoriser et observer la partie courantepublic class SessionPong extends Session<SessionPong> { // ... // ajouter private String idPartieCourante = null; // ... // ajouter public SessionPong memoriserPartieCourante(String idPartie) { this.idPartieCourante = idPartie; return this; } // ajouter public SessionPong observerPartieCourante() { this.setModelSelection(ModelePartie.class, idPartieCourante); return this; }
-
Ajouter un
idPartie
auEvtAfficherPartie
public class EvtAfficherPartie extends Event { private String idPartie; public EvtAfficherPartie setIdPartie(String idPartie) { this.idPartie = idPartie; return this; } public EvtAfficherPartie appliquerA(SessionPong session) { session.memoriserPartieCourante(idPartie) .observerPartieCourante() .memoriserVueCourante(VuePartie.class); return this; } public EvtAfficherPartie appliquerA(VueRacine vueRacine, VuePartie vuePartie) { vueRacine.afficherSousVue(vuePartie); return this; } }
-
Transmettre le
idPartie
au moment de déclencher leEvtAfficherPartie
public class FragmentRendezVousComplet extends FragmentRendezVous { @FXML private Label labelNomDeuxiemeJoueur; @FXML private Label labelScore; @Override public void initialize() { super.initialize(); Ntro.assertNotNull(labelNomDeuxiemeJoueur); Ntro.assertNotNull(labelScore); } public void memoriserIdRendezVous(String idRendezVous) { // ... // ajouter installerEvtAfficherPartie(idRendezVous); } // ajouter private void installerEvtAfficherPartie(String idPartie) { getBoutonDebuterPartie().setOnAction(evtFx -> { Ntro.session(SessionPong.class) .memoriserPartieCourante(idPartie) .observerPartieCourante(); Ntro.newEvent(EvtAfficherPartie.class) .setIdPartie(idPartie) .trigger(); }); }
-
Vérifier qu’on affiche la bonne partie
$ sh gradlew pong