Tutoriel 4: graphe de tâches #
Créer le groupe de tâches Navigation
#
-
Dans le paquet
taches
, créer la classeNavigation
-
Ajouter le
import static
-
import static ca.ntro.app.tasks.frontend.FrontendTasks.*;
-
-
Ajouter la méthode
creerTaches
public class Navigation { public static void creerTaches(FrontendTasks tasks) { tasks.taskGroup("Navigation") .waitsFor("PremierAffichage") .contains(subTasks -> { // ... }); } }
- ATTENTION s’assurer d’avoir le
waitsFor
- ATTENTION s’assurer d’avoir le
-
S’assurer d’avoir l’arborescence suivante
Appeler Navigation.creerTaches
dans le Frontal
#
-
J’ouvre
FontalPong
et j’ajoute l’appel àNavigation.creerTaches
public class FrontalPong implements FrontendFx { @Override public void createTasks(FrontendTasks tasks) { CreerVues.creerTaches(tasks); PremierAffichage.creerTaches(tasks); // ajouter Navigation.creerTaches(tasks); } // ...
-
Dans
Navigation
, coder les tâchesprivate static void afficherVuePartie(FrontendTasks subTasks) { subTasks.task("afficherVuePartie") .waitsFor(created(VueRacine.class)) .waitsFor(created(VuePartie.class)) .waitsFor(event(EvtAfficherPartie.class)) .executes(inputs -> { VueRacine vueRacine = inputs.get(created(VueRacine.class)); VuePartie vuePartie = inputs.get(created(VuePartie.class)); EvtAfficherPartie evtAfficherPartie = inputs.get(event(EvtAfficherPartie.class)); evtAfficherPartie.appliquerA(vueRacine, vuePartie); }); } private static void afficherVueFileAttente(FrontendTasks subTasks) { subTasks.task("afficherVueFileAttente") .waitsFor(created(VueRacine.class)) .waitsFor(created(VueFileAttente.class)) .waitsFor(event(EvtAfficherFileAttente.class)) .executes(inputs -> { VueRacine vueRacine = inputs.get(created(VueRacine.class)); VueFileAttente vueFileAttente = inputs.get(created(VueFileAttente.class)); EvtAfficherFileAttente evtAfficherFileAttente = inputs.get(event(EvtAfficherFileAttente.class)); evtAfficherFileAttente.appliquerA(vueRacine, vueFileAttente); }); }
-
Dans
Navigation.creerTaches
, ajouter appels de méthodepublic static void creerTaches(FrontendTasks tasks) { tasks.taskGroup("Navigation") .waitsFor("PremierAffichage") .contains(subTasks -> { afficherVueFileAttente(subTasks); afficherVuePartie(subTasks); }); }
Ajouter les méthodes appliquerA
dans les événements
#
-
Dans
EvtAfficherPartie
public class EvtAfficherPartie extends Event { // ajouter public EvtAfficherPartie appliquerA(VueRacine vueRacine, VuePartie vuePartie) { vueRacine.afficherSousVue(vuePartie); return this; } }
-
Dans
EvtAfficherFileAttente
public class EvtAfficherFileAttente extends Event { // ajouter public EvtAfficherFileAttente appliquerA(VueRacine vueRacine, VueFileAttente vueFileAttente) { vueRacine.afficherSousVue(vueFileAttente); return this; } }
Tester que la navigation fonctionne #
-
Exécuter
pong
et tester qu’on peut naviguer d’une page à l’autre$ sh gradlew pong
Vérifier le graphe de tâches #
-
S’assurer d’avoir le graphe de tâches suivant
- NOTE: le graphe est généré, alors l’emplacement exact des noeuds peut varier