Afficher la fenêtre et le graphe des tâches #
Créer des paquets pour le Frontal #
-
En Eclipse, ajouter le paquet
frontal
au paquetpong
- Clique-droit sur le paquet
pong
=> New => Package - nom du paquet:
pong.frontal
- Clique-droit sur le paquet
-
En Eclipse, ajouter le paquet
taches
au paquetpong.frontal
- Clique-droit sur le paquet
frontal
=> New => Package - nom du paquet:
pong.frontal.taches
- Clique-droit sur le paquet
Créer des classes pour le frontal #
-
En Eclipse, ajouter la classe
FrontalPong
au paquetfrontal
- Clique-droit sur le paquet
frontal
=> New => Class - paquet:
pong.frontal
- nom:
FrontalPong
- ne pas cocher
public static ...
- Clique-droit sur le paquet
-
En Eclipse, ajouter la classe
PremierAffichage
au paquetfrontal.taches
- Clique-droit sur le paquet
frontal.taches
=> New => Class - paquet:
pong.frontal.taches
- nom:
PremierAffichage
- ne pas cocher
public static ...
- Clique-droit sur le paquet
Vérifier l’arborescence du projet pong
#
Créer une tâche pour afficher la fenêtre #
-
Ouvrir
PremierAffichage.java
-
Avant d’ajouter des tâches à un frontal, copier le
import static
suivant:
import static ca.ntro.app.tasks.frontend.FrontendTasks.*;
-
Ajouter une méthode
creerTaches
qui va créer un groupe de tâches contenant les tâches d’initialisationpublic class PremierAffichage { public static void creerTaches(FrontendTasks tasks) { tasks.taskGroup("PremierAffichage") .contains(subTasks -> { afficherFenetre(subTasks); }); } }
-
Ajouter une méthode
afficherFenetre
qui va créer la tâche d’affichage de la fenêtrepublic class PremierAffichage { // ... private static void afficherFenetre(FrontendTasks subTasks) { subTasks.task("afficherFenetre") .waitsFor(window()) .executes(inputs -> { Window window = inputs.get(window()); window.setTitle("Pong"); window.show(); }); } }
- Attention d’importer
ca.ntro.app.services.Window
Ajouter la tâche au frontal #
-
Ouvrir
FrontalPong.java
et s’assurer que la classe implanteFrontendFx
-
Utiliser Ctrl+.Eclipse: Ctrl+1 pour ajouter le
import FrontendFx
-
Utiliser Ctrl+.Eclipse: Ctrl+1, pour ajouter les méthodes obligatoires de
FrontendFx
-
Dans la méthode
createTasks
, appelerPremierAffichage.creerTaches
afin d’ajouter les tâches d’initialisationpublic class FrontalPong implements FrontendFx { @Override public void createTasks(FrontendTasks tasks) { PremierAffichage.creerTaches(tasks); } @Override public void registerEvents(EventRegistrar registrar) { } @Override public void registerViews(ViewRegistrarFx registrar) { } @Override public void registerSessionClass(SessionRegistrar registrar) { } }
Déclarer le frontal dans AppPong
#
-
J’ouvre
AppPong.java
-
Dans la méthode
registerFrontend
, s’assurer de déclarer le frontal du clientpong
public class AppPong implements NtroAppFx { public static void main(String[] args) { NtroAppFx.launch(args); } @Override public void registerFrontend(FrontendRegistrarFx registrar) { registrar.registerFrontend(FrontalPong.class); } @Override public void registerMessages(MessageRegistrar registrar) { } @Override public void registerModels(ModelRegistrar registrar) { } @Override public void registerBackend(BackendRegistrar registrar) { } }
-
Utiliser Ctrl+.Eclipse: Ctrl+1 pour importer
FrontalPong
Exécuter pong
#
-
Exécuter le projet en Eclipse ou en GitBash
$ sh gradlew pong
-
Observer que:
- l’application affiche maintenant une fenêtre (il y a un frontal)
- on peut maintenant quitter l’application en fermant la fenêtre
-
Fermer fenêtre pour quitter l’application
Afficher le graphe de tâches #
-
On a maintenant un graphe de tâches pour le frontal
-
Ce graphe est sauvegardé dans
pong/_storage/graphs/frontend.png
-
Afficher mon graphe de tâches
- on a bien un groupe de tâches qui contient
- la tâche
window
- la tâche
afficherFenetre
qui attend que la fenêtre existe avant de l’afficher
- la tâche
- on a bien un groupe de tâches qui contient