Tutoriel 3: analyse #
Comparer le comportement de dep02 et dep03
#
|
|
|
|---|---|
|
|
|
|
|
| Affiche une fenêtre vide | Affiche une vue simple, avec mise en forme de base |
Comparer les graphes de tâches de dep02 et dep03
#
|
|
|
|---|---|
|
|
|
|
Comparer les fichiers dep02 et dep03
#
- Comparer les répertoires
dep02/srcetdep03/srcavec VSCode:
|
Fichiers différents
|
|||||||||
|
Nouveaux fichiers dans
|
-
Différences dans le code de
TachesB-
Ajout d’une nouvelle tâche au groupe de tâches
TachesB
-
La
tacheB1est complètement nouvelle:
-
On récupère
objAavecinputs.get(created(VueA.class))objAest donc la VueA
-
On récupère
objAavecinputs.get(window())objBest donc la fenêtre
-
La tâche sert donc à installer la
VueAdans la fenêtre -
Noms possibles pour la tâche
installerVueAafficherVueAinstallerVuePrincipaleinstallerVueRacine
-
-
-
Différences dans le code de
FrontalDepart-
Création des
TachesA
-
Déclaration de la vue
-
Si on veut changer le nom du fichier
vue_a.fxmlil faudra changer ce code là:registrar.registerView(VueFileAttente.class, "/vues/vue_a.fxml"); // <-----
-
Analyser les nouveaux fichiers #
-
Classe
TachesAtasks.taskGroup("TachesA") .waitsFor(viewLoaders()) .contains(subTasks -> { tacheA(subTasks); // <--- });-
Une seule tâche dans le groupe de tâches
-
La
tacheAest comme suitprivate static void tacheA(FrontendTasks subTasks) { subTasks.task(create(VueA.class)) .waitsFor(viewLoader(VueA.class)) .executesAndReturnsValue(inputs -> { var objA = inputs.get(viewLoader(VueA.class)); var objB = objA.createView(); return objB; });objAest unViewLoader<VueA>puisque récupéré viainputs.get(viewLoader(VueA.class))objBest uneVueApuisque créé via la méthodecreateViewd’unViewLoader<VueA>
-
Noms possible pour le groupe de tâches
TachesACreerVuesCreationDesVuesChargerVues- etc.
-
-
Fichier
vue_a.fxmlpour la VueA (VueFileAttente)<?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.layout.* ?> <?import javafx.scene.control.* ?> <VBox xmlns:fx="http://javafx.com/fxml" fx:controller="depart.frontal.vues.VueA" styleClass="conteneur,v,center"> <Pane styleClass="espacement,petit"/> <Label text="%texteA" /> <Pane styleClass="espacement,petit"/> <Button text="%texteB" /> <Pane styleClass="espacement,petit"/> </VBox>-
Puisqu’on a renommé
VueA=>VueFileAttente, il faut modifier la valeur defx:controller<VBox xmlns:fx="http://javafx.com/fxml" fx:controller="depart.frontal.vues.FileAttente" <----- styleClass="conteneur,v,center"> -
Ensuite,
%texteAet%texteBsemble quelque chose de spécial, cherchons dans le répertoiredep03/src
-
On trouve que
texteAest définit dansfr.properties(eten.properties)texteA=Texte A, en français texteB=Texte B, en français
-
Analyser la VueA #
-
Les contrôles sont dans un
VBox, donc placés de haut en bas
Extra: analyse VueA de dep03_extra02
#
-
Les contrôles sont dans un
HBox, donc placés de gauche à droite
Extra: analyse VueA de dep03_extra03
#
-
On a un mélange
VBoxetHBox -
En particulier: on a un
VBox, et un des éléments est unHBox