Tutoriel 4: afficher en mode texte #
-
Ajouter
ModeleFileAttente.afficherSur
public class ModeleFileAttente implements Model { // ... private List<RendezVous> rendezVousDansOrdre = new ArrayList<>(); // ... public void afficherSur(VueFileAttente vueFileAttente) { vueFileAttente.afficherRendezVousEnTexte(this.toString()); }
-
Ajouter
VueFileAttente.afficherRendezVousEnTexte
public class VueFileAttente extends ViewFx { // ... @FXML private Label labelRendezVous; // ... public void afficherRendezVousEnTexte(String texteRendezVous) { labelRendezVous.setText(texteRendezVous); }
-
Dans la tâche
afficherFileAttente
, ajouter l’appel àafficherSur
public class AfficherFileAttente { //... tasks.task("afficherFileAttente") .waitsFor(modified(ModeleFileAttente.class)) .executes(inputs -> { // ... // ajouter fileCourante.afficherSur(vueFileAttente); }); //...
-
Vérifier que ça fonctionne
$ sh gradlew pong
-
Il reste définir
ModeleFileAttente.toString
correctementpublic class ModeleFileAttente implements Model { // ... private List<RendezVous> rendezVousDansOrdre = new ArrayList<>(); // ... @Override public String toString() { StringBuilder builder = new StringBuilder(); int numeroRendezVous = 1; for(RendezVous rendezVous : rendezVousDansOrdre) { builder.append(numeroRendezVous); builder.append(". "); builder.append(rendezVous.toString()); builder.append("\n"); numeroRendezVous++; } return builder.toString(); }
-
Ce qui veut dire définir
RendezVous.toString
correctementpublic class RendezVous implements ModelValue { private String idRendezVous; private Joueur premierJoueur; // ... // ajouter protected Joueur premierJoueur() { return premierJoueur; } // ajouter @Override public String toString() { return premierJoueur().nomComplet(); }
-
Puis, définir
RendezVousComplet.toString
correctementpublic class RendezVousComplet extends RendezVous { private Joueur deuxiemeJoueur; // ... @Override public String toString() { return premierJoueur().nomCourt() + " Vs " + deuxiemeJoueur.nomCourt(); }
-
Finalement, ajouter ces méthodes à
Joueur
public class Joueur implements ModelValue { private String id; private String prenom; private String nom; // ... public String nomComplet() { return prenom + " " + nom; } public String nomCourt() { return prenom; }
-
On devrait maintenant avoir l’affichage complet
$ sh gradlew pong
-
On peut aussi vérifier en modifiant le fichier
ModeleFileAttente.json