Théorie: session #
Informations spécifiques au Frontal #
-
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).
-
En quittant l’application, Ntro va sauvegarder la session
-
La session permet donc de reprendre l’affichage «là où on était rendu»
Pour déclarer la session #
-
Il faut créer une classe qui hérite de
Sessionpublic class SessionPong extends Session<SessionPong> { // ajouter des attributs, p.ex. la vue courante ou la partie courante } -
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 #
-
On peut récupérer la session partout dans le Frontal:
SessionPong session = Ntro.session(SessionPong.class); -
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 #
-
Modifier le fichier
build.gradledu projet. Ajouter:ntroProject.users = ["alice","bob"] -
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? #
-
Fichiers lus par Ntro:
mon_projet/_storage/sessions -
Pour les sauvegarder dans Git, les copier dans p.ex.
mon_projet/json/sessions