ntro.ca

        • Contrats de classe
        • Liens utiles
        • Calendrier
        • Calendrier groupe 2
        • Calendrier groupes 1, 3
        • Structure du cours
        • Évaluations
        • Matériel à se procurer
        • Les profs
          • Marc-Olivier Tremblay
          • Mathieu Bergeron
        • Module 1.1: installation + trier des cartes
        • Module 1.2: rappels POO
        • Module 1.3: tableau d'objets
        • Examen 1
        • Module 2.1: données JSON
        • Module 2.2: données en Java
        • Module 2.3: récursivité
        • Examen 2
        • Module 3.1: structure générique
        • Module 3.2: efficacité (1)
        • Module 3.3: efficacité (2)
        • Examen 3
        • Module 4.1: liste naïve
        • Module 4.2: liste par tableau
        • Module 4.3: liste chaînée
        • Examen 4
        • Module 5.1: mappage naïf
        • Module 5.2: mappage par hachage
        • Module 5.3: mappage par arbre
        • Examen 5
        • Équipes
          • Horaire groupe 1
          • Horaire groupe 2
          • Horaire groupe 3
          • Groupe 1
          • Groupe 2
          • Groupe 3
        • Projets vedettes 2022
        • Projets vedettes 2023
        • Projets vedettes 2024
        • Projets vedettes 2025
        • Survol
        • Structure
        • Calendrier
        • Calendrier des séances
        • Évaluations
        • Exemples de jeu
        • Exemples de pages
        • Réponses à vos questions
        • Module 1: créer le projet
        • Module 2: concevoir l'application
        • Module 3: vues NtroFx
        • Module 4: modèle et navigation
        • Module 5: ajouter le dorsal, modifier le modèle
        • Module 7: améliorer l'affichage
        • Module 8: jeu en 2d
        • Module 9: client/serveur
        • Module 10: plusieurs instances du même modèle
        • TP1
        • Examen 1
        • TP2
        • Examen 2
        • Projet de fin de session
        • Calendrier
        • Structure du cours
        • Évaluations
        • Contrat de classe
        • Le prof
        • 01: Windows et Word
          • Astuces et raccourcis
        • 02: Word
        • 03: Word
          • Exercice Word: insertion d'éléments spéciaux
          • Exercice Word: tableaux
        • 04: Word
          • Exercice Word: références
          • TP01: Word (15%)
        • 05: PowerPoint
          • TP02: PowerPoint (10%)
        • 06: Examen Word (20%)
        • 07: Excel
        • 08: Excel
        • 09: Excel
          • TP03: Excel (15%)
        • 10: Excel
        • 11: Examen Excel (20%)
        • 12: Access
        • 13: Access
        • 14: Access
        • 15: Examen Access
      • Sondage H2023 (dept. info)
      • Vision H2023 (dept. info)
      • P1) exercices interactifs de lecture
      • P2) transition Excel vers Python
        • Atelier 2: un exemple
      • Jquery
      • Jquery Ui
      • Point de vue sur l'IA
    Afficher Rendez Vous
    • Tutoriel: afficher les rendez-vous
      • Modifier FragmentRendezVous pour afficher le nom du premier joueur
      • Modifier FragmentRendezVousComplet pour afficher le nom du deuxième joueur
      • Modifier RendezVous pour créer le bon fragment
      • Modifier RendezVousComplet pour créer le bon fragment
      • Modifier RendezVous pour afficher sur un fragment
      • Modifier RendezVousComplet pour afficher sur un fragment
      • Modifier VueFileAttente pour afficher avec des fragments
      • Modifier ModeleFileAttente pour afficher avec des fragments
      • Tester que ça fonctionne

    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 #

    1. 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é"
            }
          }
        ]
      }
      
    2. 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
    Creative Commons License Creative Commons Attribution Creative Commons ShareAlike
    • Tutoriel: afficher les rendez-vous
      • Modifier FragmentRendezVous pour afficher le nom du premier joueur
      • Modifier FragmentRendezVousComplet pour afficher le nom du deuxième joueur
      • Modifier RendezVous pour créer le bon fragment
      • Modifier RendezVousComplet pour créer le bon fragment
      • Modifier RendezVous pour afficher sur un fragment
      • Modifier RendezVousComplet pour afficher sur un fragment
      • Modifier VueFileAttente pour afficher avec des fragments
      • Modifier ModeleFileAttente pour afficher avec des fragments
      • Tester que ça fonctionne