ISSUE 13: Ajouter un support graphique qu'un utilisateur se connecte au logiciel
Implémentation User Interface
Dans cet issue, on cherchera à implémenter une page de connexion: si un utilisateur souhaite se connecter, il entrera dans les champs présenté son nom d'utilisateur et mot de passe, puis cliquera sur le bouton de connexion.
On cherchera donc ici à vérifier les valeurs entrées dans ces champs, les comparer aux utilisateurs déjà existants et renvoyer soit la page d'accueil de l'application, soit un message d'erreur.
Classe GUI
J'ai modifiée l'exemple déjà présent au sein de a classe GUI pour y implémenter l'utilisation un fichier FXML pour charger l'interface graphique.
En passant par la classe FXMLLoader
, cela permet de rendre l'apparence plus attrayante, mais aussi de faciliter certaines implémentation comme l'ajout de méthodes associés aux boutons, labels, texte-inputs ...etc.. On initialise donc la scène en utilisant un ficher FXML de manière similaire à la version d'exemple préalablement mise en place. Néanmoins, on pourra supprimer tout les ajouts de boutons, qui seront pris en charge au sein du fichier FXML.
De plus, j'ai ajoutée une méthode temporaire initTestingMethod( ), qui initialise un agent et son calendrier, et l'ajoute au sein d'un objet UserManager
et lui associe un mot de passe: cela permettra de vérifier qu'un agent existant au sein de UserManager pourra se connecter au logiciel.
loginView.fxml (anciennement View.fxml)
Le fichier loginView.fxml, qui est un document écrit en XML permettant de décrire les différents aspects graphiques affichés sur la scène. De plus, pour créer ces aspects graphiques, on pourra utiliser SceneBuilder plutôt que de remplir manuellement ce fichier, ce qui permettra de gagner du temps.
De plus, on pourra ajouter des id aux différents boutons, inputs..etc... pour les associer aux méthodes construites au sein d'une classe Controller
.
Classe LoginController (anciennement Controller)
Au sein de la classe LoginController
, on a les différentes méthodes inter-réagissant avec ce que l'utilisateur fait sur la scène (entrer son nom d'utilisateur, mot de passe ou clique sur le bouton Login). On aura les méthodes suivantes:
-
handleButtonClick: Cette méthode est la plus importante. Lorsqu'un utilisateur entre des valeurs (ou nom) dans les champs de texte et de mot de passe puis clique sur le bouton Login, on récupère les informations entrés dans ces champs. Puis, on les compare avec les valeurs déjà existantes au sein de
UserManager
. On vérifie d'abord que le nom d'utilisateur existe. Si oui, on vérifie alors que le mot de passe est celui attribué à cet utilisateur. Dans le as où les deux champs sont vérifié, on pourra alors entrer dans l'application. Si les informations entrés ne sont pas vérifié, on envoie un message d'erreur sur la scène. - buttonIsPressed et buttonIsReleased: Ces deux méthodes ont un but esthétique. Lorsque l'utilisateur appuie sur le bouton Login, celui-ci dviens plus foncé lors de la pression, et lorsqu'on le relâche, retrouve sa couleur normal. Ces méthodes ont été rapidement implémenté pour s'assurer qu'il y avait bien interaction avec le bouton.
- signUpHandleButtonClick: Cette méthode permet, lorsqu'on clique sur le bouton Inscription de changer de scene pour une nouvelle contenant un formulaire pour ajouter un utilisateur (voir ticket #17)
- setGraphicUserInterface: Fait une association entre la classe courante et GUI
NB: Comme la vérification de mot de passe n'est actuellement pas fonctionnelle, l'implémentation complète ne peut être mise en place pour le moment