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
    Donnees Vue Partie
    • Tutoriel: créer DonneesVuePartie
      • Créer le ViewData nommé DonneesVuePartie
      • Déclarer DonneesVuePartie
      • Instancier notre DonneesVuePartie avec une tâche
      • Tester que ça fonctionne

    Tutoriel: créer DonneesVuePartie #

    Créer le ViewData nommé DonneesVuePartie #

    1. En VSCode, créer le paquet frontal.donnees

    2. Dans le paquet donnees, créer la classe DonneesVuePartie

    3. En VSCode, je m’assure d’avoir l’arborescence suivante

    4. Ouvrir DonneesVuePartie et ajuster la signature

      public class DonneesVuePartie implements ViewData {
      
    5. Utiliser Ctrl+.Eclipse: Ctrl+1 pour ajouter l'import de ViewData

    6. Dans DonneesVuePartie, ajouter les attributs suivants

      public class DonneesVuePartie implements ViewData {
      
          private MondePong2d mondePong2d = new MondePong2d();
          private String fpsCourant = "0";
      
      }
      
      • NOTES:
        • le fpsCourant est une exemple de données spécifique à la Vue
        • on ne veux pas sauvegarder fpsCourant dans le fichier .json

    Déclarer DonneesVuePartie #

    1. Ouvrir FrontalPong et ajouter ce code

      public class FrontalPong implements FrontendFx {
      
          //...
      
          @Override
          public void registerViews(ViewRegistrarFx registrar) {
      
              // ...
      
              // ajouter
              registrar.registerViewData(DonneesVuePartie.class);
          }
      
      • NOTES
        • on déclare DonneesVuePartie dans le frontal
        • c’est spécifique au frontal, le dorsal n’a pas accès à cet classe
    2. Utiliser Ctrl+.Eclipse: Ctrl+1 pour ajouter l'import de DonneesVuePartie

    Instancier notre DonneesVuePartie avec une tâche #

    1. Dans le paquet frontal.taches, créer la classe AfficherPartie

    2. En VSCode, je s’assurer d’avoir l’arborescence suivante

    3. Ouvrir AfficherPartie et ajouter le code suivant

      import static ca.ntro.app.tasks.frontend.FrontendTasks.*;
      
      public class AfficherPartie {
      
          public static void creerTaches(FrontendTasks tasks) {
      
              creerDonneesVuePartie(tasks);
      
          }
      
          private static void creerDonneesVuePartie(FrontendTasks tasks) {
      
              tasks.task(create(DonneesVuePartie.class))
      
                   .executesAndReturnsValue(inputs -> {
      
                       return new DonneesVuePartie();
                   });
          }
      }
      
      • NOTES
        • ne pas oublier le import static


          import static ca.ntro.app.tasks.frontend.FrontendTasks.*;
    4. Utiliser Ctrl+.Eclipse: Ctrl+1 et je corriger les erreurs de compilation

    5. Ouvrir FrontalPong et ajouter l’appel à la méthode AfficherPartie.creerTaches

      public class FrontalPong implements FrontendFx {
      
          @Override
          public void createTasks(FrontendTasks tasks) {
      
              // ...
      
              // ajouter
              AfficherPartie.creerTaches(tasks);
      
          }
      

    Tester que ça fonctionne #

    1. S’assurer que AppPong s’exécute sans erreurs

      $ sh graldew pong
      
    2. Vérifier le graphe de mon frontal:

      • NOTE: les tâches suivantes sont optionnelles:
        • changerTaillePolice
        • changerLangue
        • viewLoader[FragmentUneLangue]
    Creative Commons License Creative Commons Attribution Creative Commons ShareAlike
    • Tutoriel: créer DonneesVuePartie
      • Créer le ViewData nommé DonneesVuePartie
      • Déclarer DonneesVuePartie
      • Instancier notre DonneesVuePartie avec une tâche
      • Tester que ça fonctionne