From 8490d5caade8ab371db77ddd9b131204aa9ce6e5 Mon Sep 17 00:00:00 2001
From: alartigu Controller de l'application. C'est par cette méthode que chaque connexion et chaque session sont entamees
+ * Les differents attributs sont:
+ * actifsUsers: qui est la liste des utilisateurs actifs actuellement et connus par l'application
+ * me: qui est l'instance de la classe Utilisateur représentant l'utilisateur se connectant via cette instance de chatapp
+ * main: l'application de l'interface graphique qui s'occupe d'instancier chatapp
+ * runnerEcouteTCP: instance de runnerEcouteTCP, Thread permettant de recevoir des demandes de clavardage
+ * runnerEcouteUDP: instance de runnerEcouteUDP; Thread permettant de communiquer en UDP pour recevoir les demandes de connexion, deconnexion, changements de pseudo et leurs réponses associées
+ * connecte: booleen indiquant si l'on est connecte sur le reseau ou non
+ * db: instance permettant de se connecter à la base de donnees centralisee
+ *
+ * Classe permettant de gérer les multiples connexions en UDP.
+ * Extend la classe Thread.
+ *
+ * Classe représentant une session de clavrdage.
+ * La classe hérite de la classe Thread et dispose de 2 constructeurs selon que l'on initie une demande de session ou que l'on recoit une demande.
+ * Elle possède en attribut:
+ * link: la socket associée à la session de clavardage
+ * u2: l'utilisateur avec lequel on communique
+ * out: le flux de donnees sortant
+ * in: le flux de donnees entrant
+ * pcs: Le PropertyChangeSupport permettant d'envoyer les notifications de MessageRecu et de FindeSession
+ * derniersMsg: la liste temporaire des derniers messages recus
+ * Ce constructeur crée une session de clavardage quand on recoit une requete Le constructeur associe a l'envoi d'une requete TCP, lorsque que l'on veut initier une session de clavardage avec un utilisateur connecte Methode permettant d'arreter cette session de clavardage et de prevenir l'autre utilisateur de la fin de la session Methode permettant de recuperer le dernier message recu qui a ete mis dans la liste des messages recus.
+ * Utilisee par l'interface graphique qui a ete avertie grace au PropertyChangeSupport Methode lancee par le thread, permet de receptionner les messages horodates recus et d'agir en conséquence selon le type de message recu
+ * Classe representant l'interface graphique permettant de changer de pseudo + *
+ */ public class ChangementPseudo { @FXML // ResourceBundle that was given to the FXMLLoader @@ -47,6 +51,7 @@ public class ChangementPseudo { @FXML /** *Handler permettant de retourner au menu principal sur pression du MenuButton
+ * @param event L'utilisateur vient d'appuyer sur le bouton Retour au menu */ void retourMenu(ActionEvent event) { System.out.println("Retour au menu principal"); @@ -65,6 +70,7 @@ public class ChangementPseudo { @FXML /** *Handler permettant de lancer la verrification de l'unicite du ppseudo sur pression du validtionButton
+ * @param event L'utilisateur vient d'appuyer sur le bouton Valider pseudo */ void validerPseudo(ActionEvent event) { boolean pseudoOK = false; diff --git a/Implementation/chatapp/src/main/java/chatapp/View/Clavardage.java b/Implementation/chatapp/src/main/java/chatapp/View/Clavardage.java index 565c958..47ebd3c 100644 --- a/Implementation/chatapp/src/main/java/chatapp/View/Clavardage.java +++ b/Implementation/chatapp/src/main/java/chatapp/View/Clavardage.java @@ -23,6 +23,11 @@ import javafx.scene.control.TextField; import javafx.scene.text.Text; import javafx.stage.Stage; +/** + *+ * Classe representant l'interface graphique permettant de clavarder avec un utilisateur. + *
+ */ public class Clavardage implements Initializable, PropertyChangeListener { @FXML //fx:id="plusButton" public Button plusButton; @@ -53,6 +58,7 @@ public class Clavardage implements Initializable, PropertyChangeListener { @FXML /** *Handler gerant l'envoi du message contenu dans le TextField AEnvoyer et sur pression du bouton EnvoyerButton
+ * @param event L'utilisateur vient d'appuyer sur le bouton Envoyer */ void envoyerMessage(ActionEvent event) { String msg = AEnvoyer.getText(); @@ -73,9 +79,7 @@ public class Clavardage implements Initializable, PropertyChangeListener { * @param session la session a associer a la classe */ public void setSession(SessionClavardage session) { - this.session = session; - this.session.addPropertyChangeListener(this); this.u2=session.getU2(); this.pseudonyme1.setText(u2.getPseudo()); @@ -128,7 +132,7 @@ public class Clavardage implements Initializable, PropertyChangeListener { /** *Permet de recepurer plus de messages stoces dans la database en appuyant sur le bouton plusButton
- * @param actionEvent + * @param actionEvent L'utilisateur a appuye sur le bouton plus pour obtenir tout l'utilisateur */ public void ajouterMessagesHistorique(ActionEvent actionEvent) { this.nomTable = this.session.getApp().getDb().getNomTable(u2,this.session.getApp().getMe()); diff --git a/Implementation/chatapp/src/main/java/chatapp/View/ConnexionScreen.java b/Implementation/chatapp/src/main/java/chatapp/View/ConnexionScreen.java index 9997cc5..13f6bc1 100644 --- a/Implementation/chatapp/src/main/java/chatapp/View/ConnexionScreen.java +++ b/Implementation/chatapp/src/main/java/chatapp/View/ConnexionScreen.java @@ -16,7 +16,12 @@ import javafx.scene.control.Button; import javafx.scene.control.RadioButton; import javafx.scene.control.TextField; import javafx.stage.Stage; - +/** + *+ * Classe representant l'interface graphique permettant de se connecter. + * L'utilisateur rentre un pseudo et choisit une connexion distante ou locale. + *
+ */ public class ConnexionScreen { public Button connexionButton; @@ -40,11 +45,12 @@ public class ConnexionScreen { /** *Handler permettant de lancer la connexion avec le pseudonyme contenu dans le TextField pseudonyme en appuyant sur le connexionButton *
- * @param actionEvent + * @param actionEvent L'utilisateur vient d'appuyer sur le bouton connexion */ public void connexion(ActionEvent actionEvent) { Boolean connexion = false; if(this.localButton.isSelected()) { + // PARTIE CONNEXION LOCALE try { connexion = ChatApp.getInstance().connexion(pseudonyme.getText()); } catch (IOException e) { diff --git a/Implementation/chatapp/src/main/java/chatapp/View/DemarrerSession.java b/Implementation/chatapp/src/main/java/chatapp/View/DemarrerSession.java index 4d987f4..5b8a6a9 100644 --- a/Implementation/chatapp/src/main/java/chatapp/View/DemarrerSession.java +++ b/Implementation/chatapp/src/main/java/chatapp/View/DemarrerSession.java @@ -20,7 +20,11 @@ import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.ComboBox; import javafx.stage.Stage; - +/** + *+ * Classe representant l'interface graphique permettant de choisir un utilisateur avec qui clavarder. + *
+ */ public class DemarrerSession { @FXML // ResourceBundle that was given to the FXMLLoader @@ -38,7 +42,7 @@ public class DemarrerSession { /** *Handler permettant de demarrer une session de clavardage avec le contact choisi dans la comboBox choixContaact
- * @param event + * @param event L'utilisateur vient de selectionner un utilisateur */ @FXML void demarrerSessionAvec(ActionEvent event) { @@ -47,6 +51,7 @@ public class DemarrerSession { /** *Handler permettant de retourner au menu principal sur pression du MenuButton
+ * @param event L'utilisateur vient d'appuyer sur le bouton Retour au menu */ @FXML void retourMenu(ActionEvent event) { diff --git a/Implementation/chatapp/src/main/java/chatapp/View/FenetreSession.java b/Implementation/chatapp/src/main/java/chatapp/View/FenetreSession.java index 4ca243d..cc43ca1 100644 --- a/Implementation/chatapp/src/main/java/chatapp/View/FenetreSession.java +++ b/Implementation/chatapp/src/main/java/chatapp/View/FenetreSession.java @@ -10,11 +10,16 @@ import javafx.stage.WindowEvent; import java.beans.PropertyChangeListener; import java.io.IOException; - +/** + *+ * Classe permettant d'ouvrir une nouvelle fenetre afin de clavarder avec un utilisateur. + *
+ */ public class FenetreSession extends Stage { SessionClavardage session; /** *Permet l'ouverture de la fenetre associee a la session de clavardage
+ * @param session Un objet FenetreSession est attribué avec un objet de type SessionClavardage */ public FenetreSession(SessionClavardage session) { FXMLLoader fichier = new FXMLLoader(getClass().getResource("/fenetres/View_Clavardage.fxml")); diff --git a/Implementation/chatapp/src/main/java/chatapp/View/View_Menu.java b/Implementation/chatapp/src/main/java/chatapp/View/View_Menu.java index 8c78146..090aeb2 100644 --- a/Implementation/chatapp/src/main/java/chatapp/View/View_Menu.java +++ b/Implementation/chatapp/src/main/java/chatapp/View/View_Menu.java @@ -15,7 +15,12 @@ import javafx.scene.Scene; import javafx.scene.control.MenuItem; import javafx.scene.text.Text; import javafx.stage.Stage; - +/** + *+ * Classe representant la page d'acceuil. Elle est composé d'un menu en haut a gauche. + * Au centre un petit message "Bienvenue" suivi du pseudo de l'utilisateur est affiché. + *
+ */ public class View_Menu { public Text pseudonyme; @@ -36,7 +41,7 @@ public class View_Menu { /** *Handler permettant d'aller a la scene View_Utilisateurs pour afficher la liste des utilisateurs actifs
- * @param actionEvent + * @param actionEvent L'utilisateur a choisit l'option afficher utilisateurs actifs dans le menu */ public void afficherUtilsActifs(ActionEvent actionEvent) { Stage stage = (Stage) pseudonyme.getScene().getWindow(); @@ -53,7 +58,7 @@ public class View_Menu { /** *Handler permettant d'aller a la scene Demarrer_Session pour choisir un utilisateur avec qui clavarder - * @param actionEvent + * @param actionEvent L'utilisateur a choisit l'option de demarrer une session de clavardage dans le menu */ public void demarrerSession(ActionEvent actionEvent) { Stage stage = (Stage) pseudonyme.getScene().getWindow(); @@ -70,7 +75,7 @@ public class View_Menu { /** *
Handler permettant d'aller a la scene View_ChangementPseudo pour changer son pseudonyme - * @param actionEvent + * @param actionEvent L'utilisateur a choisit l'option changer de pseudo */ public void changerPseudo(ActionEvent actionEvent) { Stage stage = (Stage) pseudonyme.getScene().getWindow(); @@ -87,7 +92,7 @@ public class View_Menu { /** *
Handler permettant de se deconnecter et fermer l'application - * @param actionEvent + * @param actionEvent L'utilisateur a choisit l'option Deconnexion dans le menu */ public void deconnexion(ActionEvent actionEvent) { try { diff --git a/Implementation/chatapp/src/main/java/chatapp/View/View_Utilisateurs.java b/Implementation/chatapp/src/main/java/chatapp/View/View_Utilisateurs.java index 96fcb3e..0eeb3c2 100644 --- a/Implementation/chatapp/src/main/java/chatapp/View/View_Utilisateurs.java +++ b/Implementation/chatapp/src/main/java/chatapp/View/View_Utilisateurs.java @@ -15,7 +15,11 @@ import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.TextArea; import javafx.stage.Stage; - +/** + *
+ * Classe representant l'interface graphique permettant d'afficher les utilisateurs actifs + *
+ */ public class View_Utilisateurs { public TextArea ListeUtilisateurs; @@ -41,6 +45,7 @@ public class View_Utilisateurs { /** *Handler permettant de retourner au menu principal sur pression du MenuButton
+ * @param actionEvent L'utilisateur vient d'appuyer sur le bouton Retour au menu */ public void retourMenu(ActionEvent actionEvent) { Stage stage = (Stage) MenuButton.getScene().getWindow();