ntro.ca

        • Contrats de classe
        • Liens utiles
        • Calendrier
        • Calendrier groupe 3
        • Calendrier groupes 1, 2
        • 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
          • URL dépôt Git à remettre
        • Module 1.3: tableau d'objets
        • Examen 1
        • Validation des ateliers
        • Module 2.1: données JSON
        • Module 2.2: données en Java
        • Module 2.3: récursivité
        • Examen 2
        • Validation des ateliers
        • Module 3.1: structure générique
        • Module 3.2: efficacité (1)
        • Module 3.3: efficacité (2)
        • Examen 3
        • Validation des ateliers
        • Module 4.1: liste naïve
        • Module 4.2: liste par tableau
        • Module 4.3: liste chaînée
        • Examen 4
        • Validation des ateliers
        • Module 5.1: mappage naïf
        • Module 5.2: mappage par hachage
        • Module 5.3: mappage par arbre
        • Examen 5
        • Validation des ateliers
        • Travail de rattrapage
        • Projets vedettes
          • Contrat gr1
          • Contrat gr2
          • Contrat gr3
        • Survol
        • Structure
        • Calendrier semaines
          • Calendrier gr1
          • Calendrier gr2
          • Calendrier gr3
        • Utilisation IA
        • Évaluations
        • Exemples de pages
        • Exemples de jeu
        • Jeux choisis
        • 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
        • Examen 1
        • Examen 2
        • Calendrier
        • Évaluations
        • Structure du cours
        • Contrat de classe
        • Le prof
        • 01: Windows et Word
          • Astuces et raccourcis
        • 02: Word
          • Exercice Word: insertion d'éléments spéciaux
          • Exercice Word: tableaux
        • 03: Word
          • Exercice Word: références
          • TP01: Word (15%)
        • 04: Word
        • 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
      • Index
      • Point de vue sur l'IA
    Session
    • Théorie: session
      • Informations spécifiques au Frontal
      • Pour déclarer la session
      • Pour utiliser la session dans le code
      • Pour démarrer l’application avec une session
      • Où sont sauvegarder les sessions?

    Théorie: session #

    Informations spécifiques au Frontal #

    1. La session mémorise des informations spécifiques au Frontal, pex.

      • la vue courante / page courante
      • le dernier modèle affichée (p.ex. la dernière partie affichée).
    2. En quittant l’application, Ntro va sauvegarder la session

    3. La session permet donc de reprendre l’affichage «là où on était rendu»

    Pour déclarer la session #

    1. Il faut créer une classe qui hérite de Session

      public class SessionPong extends Session<SessionPong> {
      
              // ajouter des attributs, p.ex. la vue courante ou la partie courante
      
          }
      
    2. Ensuite, il faut déclarer la classe session dans le Frontal

      public class FrontalPong implements FrontendFx {
      
              // ...
      
              @Override
              public void registerSessionClass(SessionRegistrar registrar) {
                  registrar.registerSessionClass(SessionPong.class);
              }
      

    Pour utiliser la session dans le code #

    1. On peut récupérer la session partout dans le Frontal:

      SessionPong session = Ntro.session(SessionPong.class);
      
    2. Dans PremierAffichage, on peut s’en servir pour décider quelle page afficher en premier, p.ex.

      tasks.task("choisirPremiereVue")
      
           .waitsFor(created(VueA.class))
      
           .executes(inputs -> {
      
              SessionPong session = Ntro.session(SessionPong.class);
      
              if(session.siVueCouranteEst(VueFileAttente.class)){
      
                  // afficher la file d'attente comme première vue
      
              } else if(session.siVueCouranteEst(VuePartie.class)){
      
                  // afficher la partie comme première vue
      
      
              } // ...
      
           });
      

    Pour démarrer l’application avec une session #

    1. Modifier le fichier build.gradle du projet. Ajouter:

      ntroProject.users = ["alice","bob"]
      
    2. Démarrer en ajoutant le nom de l’usager au nom du le tâche Gradle

      $ sh gradlew pongAlice
      $ sh gradlew pongBob
      

    Où sont sauvegarder les sessions? #

    1. Fichiers lus par Ntro: mon_projet/_storage/sessions

    2. Pour les sauvegarder dans Git, les copier dans p.ex. mon_projet/json/sessions

    Creative Commons License Creative Commons Attribution Creative Commons ShareAlike
    • Théorie: session
      • Informations spécifiques au Frontal
      • Pour déclarer la session
      • Pour utiliser la session dans le code
      • Pour démarrer l’application avec une session
      • Où sont sauvegarder les sessions?