Tutoriel: afficher les rendez-vous #
Modifier FragmentRendezVous
pour afficher le nom du premier joueur
#
public class FragmentRendezVous extends ViewFx {
// ...
// ajouter
public void afficherNomPremierJoueur(String nomPremierJoueur) {
labelNomPremierJoueur.setText(nomPremierJoueur);
}
Modifier FragmentRendezVousComplet
pour afficher le nom du deuxième joueur
#
public class FragmentRendezVousComplet extends FragmentRendezVous {
//...
// ajouter
public void afficherNomDeuxiemeJoueur(String nomDeuxiemeJoueur) {
labelNomDeuxiemeJoueur.setText(nomDeuxiemeJoueur);
}
Modifier RendezVous
pour créer le bon fragment
#
public class RendezVous implements ModelValue {
// ...
// ajouter
public FragmentRendezVous creerFragment(ViewLoader<FragmentRendezVous> viewLoaderRendezVous,
ViewLoader<FragmentRendezVousComplet> viewLoaderRendezVousComplet) {
return viewLoaderRendezVous.createView();
}
Modifier RendezVousComplet
pour créer le bon fragment
#
public class RendezVousComplet extends RendezVous {
// ...
// ajouter
@Override
public FragmentRendezVous creerFragment(ViewLoader<FragmentRendezVous> viewLoaderRendezVous,
ViewLoader<FragmentRendezVousComplet> viewLoaderRendezVousComplet) {
return viewLoaderRendezVousComplet.createView();
}
Modifier RendezVous
pour afficher sur un fragment
#
public class RendezVous implements ModelValue {
// ...
// ajouter
public void afficherSur(FragmentRendezVous fragmentRendezVous) {
fragmentRendezVous.afficherNomPremierJoueur(premierJoueur.nomCourt());
}
Modifier RendezVousComplet
pour afficher sur un fragment
#
public class RendezVousComplet extends RendezVous {
// ...
// ajouter
@Override
public void afficherSur(FragmentRendezVous fragmentRendezVous) {
super.afficherSur(fragmentRendezVous);
FragmentRendezVousComplet fragmentRendezVousComplet = (FragmentRendezVousComplet) fragmentRendezVous;
fragmentRendezVousComplet.afficherNomDeuxiemeJoueur(deuxiemeJoueur.nomCourt());
}
Modifier VueFileAttente
pour afficher avec des fragments
#
public class VueFileAttente extends ViewFx {
// ...
// ajouter
public void ajouterRendezVous(RendezVous rendezVous) {
FragmentRendezVous fragment = rendezVous.creerFragment(viewLoaderRendezVous, viewLoaderRendezVousComplet);
rendezVous.afficherSur(fragment);
conteneurRendezVous.getChildren().add(fragment.rootNode());
}
// ajouter
public void viderListeRendezVous() {
conteneurRendezVous.getChildren().clear();
}
Modifier ModeleFileAttente
pour afficher avec des fragments
#
public class ModeleFileAttente implements Model , WatchJson, WriteObjectGraph {
public void afficherSur(VueFileAttente vueFileAttente) {
// ajouter
vueFileAttente.viderListeRendezVous();
// ajouter
for(RendezVous rendezVous : rendezVousDansOrdre) {
vueFileAttente.ajouterRendezVous(rendezVous);
}
}
Tester que ça fonctionne #
-
Copier les données suivantes dans
_storage/models/ModeleFileAttente.json
{ "_C": "ModeleFileAttente", "prochainIdRendezVous": 35, "rendezVousDansOrdre": [ { "_C": "RendezVousComplet", "idRendezVous": "3", "premierJoueur": { "_C": "Joueur", "id": "ucrj", "prenom": "Ichiro", "nom": "Medjoubi" }, "deuxiemeJoueur": { "_C": "Joueur", "id": "ucrj", "prenom": "Chaaya", "nom": "Yi" } }, { "_C": "RendezVous", "idRendezVous": "4", "premierJoueur": { "_C": "Joueur", "id": "ucrj", "prenom": "Alice", "nom": "Ahmadi" } }, { "_C": "RendezVousComplet", "idRendezVous": "5", "premierJoueur": { "_C": "Joueur", "id": "ucrj", "prenom": "Chaaya", "nom": "Heer" }, "deuxiemeJoueur": { "_C": "Joueur", "id": "ucrj", "prenom": "Gregson", "nom": "Chaussé" } } ] }
-
Exécuter
AppPong
et vérifier que le modèle s’affiche avec des éléments graphiques$ sh gradlew pong
- NOTES:
- on voit que les tailles ne sont pas encore élastiques
- NOTES: