diff --git a/Implementation/chatapp/build/resources/main/fenetres/View_ChangementPseudo.fxml b/Implementation/chatapp/build/resources/main/fenetres/View_ChangementPseudo.fxml index 0a7885a..5bfabb7 100644 --- a/Implementation/chatapp/build/resources/main/fenetres/View_ChangementPseudo.fxml +++ b/Implementation/chatapp/build/resources/main/fenetres/View_ChangementPseudo.fxml @@ -42,7 +42,7 @@ - + diff --git a/Implementation/chatapp/build/tmp/compileJava/source-classes-mapping.txt b/Implementation/chatapp/build/tmp/compileJava/source-classes-mapping.txt index 3add4f0..fab7a99 100644 --- a/Implementation/chatapp/build/tmp/compileJava/source-classes-mapping.txt +++ b/Implementation/chatapp/build/tmp/compileJava/source-classes-mapping.txt @@ -1,39 +1,39 @@ chatapp/View/DemarrerSession.java chatapp.View.DemarrerSession -chatapp/View/FenetreSession.java - chatapp.View.FenetreSession - chatapp.View.FenetreSession$1 +chatapp/Protocol/RunnerEcouteUDP.java + chatapp.Protocol.RunnerEcouteUDP chatapp/Model/Utilisateur.java chatapp.Model.Utilisateur chatapp/View/ConnexionScreen.java chatapp.View.ConnexionScreen -chatapp/View/ChangementPseudo.java - chatapp.View.ChangementPseudo +chatapp/Controller/ChatApp.java + chatapp.Controller.ChatApp chatapp/View/View_Utilisateurs.java chatapp.View.View_Utilisateurs -chatapp/Model/MessageHorodate.java - chatapp.Model.MessageHorodate +chatapp/Protocol/RunnerEcouteTCP.java + chatapp.Protocol.RunnerEcouteTCP chatapp/Model/ListUtilisateurs.java chatapp.Model.ListUtilisateurs chatapp/View/View_Menu.java chatapp.View.View_Menu -chatapp/Launcher.java - chatapp.Launcher -chatapp/Protocol/RunnerEcouteTCP.java - chatapp.Protocol.RunnerEcouteTCP -chatapp/Protocol/UDPEchange.java - chatapp.Protocol.RunnerUDP - chatapp.Protocol.UDPEchange -chatapp/Controller/ChatApp.java - chatapp.Controller.ChatApp -chatapp/Main.java - chatapp.Main +chatapp/Model/MessageHorodate.java + chatapp.Model.MessageHorodate chatapp/View/Clavardage.java chatapp.View.Clavardage chatapp.View.Clavardage$1 -chatapp/Protocol/SessionClavardage.java - chatapp.Protocol.SessionClavardage +chatapp/Protocol/UDPEchange.java + chatapp.Protocol.RunnerUDP + chatapp.Protocol.UDPEchange chatapp/Model/DataBase.java chatapp.Model.DataBase -chatapp/Protocol/RunnerEcouteUDP.java - chatapp.Protocol.RunnerEcouteUDP +chatapp/View/FenetreSession.java + chatapp.View.FenetreSession + chatapp.View.FenetreSession$1 +chatapp/Main.java + chatapp.Main +chatapp/Protocol/SessionClavardage.java + chatapp.Protocol.SessionClavardage +chatapp/View/ChangementPseudo.java + chatapp.View.ChangementPseudo +chatapp/Launcher.java + chatapp.Launcher diff --git a/Implementation/chatapp/src/main/java/chatapp/Controller/ChatApp.java b/Implementation/chatapp/src/main/java/chatapp/Controller/ChatApp.java index 6c65ec2..2014c2a 100644 --- a/Implementation/chatapp/src/main/java/chatapp/Controller/ChatApp.java +++ b/Implementation/chatapp/src/main/java/chatapp/Controller/ChatApp.java @@ -36,7 +36,7 @@ public class ChatApp implements PropertyChangeListener { } /** - * Constructeur de l'application de chat + *

Constructeur de l'application de chat

* * @param pseudo Pseudo de l'utilisateur * @param port Port de communication @@ -54,6 +54,13 @@ public class ChatApp implements PropertyChangeListener { this.connecte=false; } + /** + *

Methode permettant de créer qu'une seule instance de chatapp

+ * @param pseudo le pseudonyme que l'on souhaite donner à l'utilisateur + * @param port le port auquel on souhaite receptionner les requêtees UDP + * @param main le stage de l'interface graphique qui crée l'instance + * @return une instance de chatapp + */ public static synchronized ChatApp getInstance(String pseudo, Integer port, Application main){ if (chatapp == null) { chatapp = new ChatApp(pseudo, port, main); @@ -61,6 +68,10 @@ public class ChatApp implements PropertyChangeListener { return chatapp; } + /** + * + * @return recupere l'instance de chatapp qui a ete creee au prealable + */ public static ChatApp getInstance(){ return chatapp; } @@ -75,8 +86,8 @@ public class ChatApp implements PropertyChangeListener { /** - * Modification du pseudo de l'utilisateur - * Envoie en broadcast ses informations utilisateurs et son nouveau pseudo + *

Modification du pseudo de l'utilisateur + * Envoie en broadcast ses informations utilisateurs et son nouveau pseudo

* * @param nouveau correspond au nouveau pseudo * @return False si modiferPseudo a echoue, True sinon @@ -115,8 +126,8 @@ public class ChatApp implements PropertyChangeListener { /** - * Methode appelee lors de la connexion d'un nouvel utilisateur. - * Il va prevenir les utilisateurs du reseau de son arrivee. + *

Methode appelee lors de la connexion d'un nouvel utilisateur. + * Il va prevenir les utilisateurs du reseau de son arrivee.

* @return False si Connexion a echoue, True sinon */ public Boolean connexion() throws IOException { @@ -140,6 +151,13 @@ public class ChatApp implements PropertyChangeListener { } } + /** + *

Methode appelee lors de la connexion de l'utilisateur, va prevenir les autres + * utlisateurs du reseau de l'arrivee de l'utilisateur sur celui-ci

+ * @param pseudo le pseudonyme avec lequel l'utilisateur souhaite se connecter + * @return False si Connexion a echoue, True sinon + * @throws IOException + */ public Boolean connexion(String pseudo) throws IOException { // Message que l'on envoie à tous les utilisateurs actifs this.me.setPseudo(pseudo); @@ -165,23 +183,35 @@ public class ChatApp implements PropertyChangeListener { } } - + /** + *

Lance un thread pour ecouter les requetes TCP + * Informe le pcs que chatapp ecoute les notifications qu'il envoie

+ */ public void activerEcouteTCP(){ this.runnerEcouteTCP = new RunnerEcouteTCP(this); this.runnerEcouteTCP.addPropertyChangeListener(this); } + + /** + *

Demarre une session de clavardage avec l'utilisateur dont le pseudo est entre en parametre

+ * @param pseudo le pseudo de l'utilisateur avec lequel on souhaite communiquer + */ public void demarrerSession(String pseudo){ Utilisateur u2 = this.actifUsers.getPseudoList(pseudo); SessionClavardage session = new SessionClavardage(u2,this); runnerEcouteTCP.addSession(session); } + + /** + *

Lance le thread pour receptionner les requetes UDP

+ */ public void activerEcouteUDP(){ this.runnerEcouteUDP = new RunnerEcouteUDP(this); this.runnerEcouteUDP.start(); } /** - * Methode appelee lors de la deconnexion de l'utilisateur. - * Il va prevenir les utilisateurs du reseau de son depart. + *

Methode appelee lors de la deconnexion de l'utilisateur. + * Il va prevenir les utilisateurs du reseau de son depart.

* */ public void deconnexion() throws IOException { @@ -249,7 +279,10 @@ public class ChatApp implements PropertyChangeListener { }*/ - + /** + *

Handler des differents evenements que chatapp ecoute

+ * @param evt l'evenement qui a ete indique par le pcs + */ @Override public void propertyChange(PropertyChangeEvent evt) { switch (evt.getPropertyName()){ @@ -260,8 +293,17 @@ public class ChatApp implements PropertyChangeListener { } } + /** + *

Permet de recuperer stage de l'interface graphique qui a cree l'instance

+ * @return le stage de l'interface graphique qui a cree l'instance + */ public Application getMain() { return main; } + + /** + *

Permet de recuperer la base de donnee associee

+ * @return la base de donnee associee + */ public DataBase getDb(){return this.db;} } diff --git a/Implementation/chatapp/src/main/java/chatapp/Main.java b/Implementation/chatapp/src/main/java/chatapp/Main.java index 40933b0..776724b 100644 --- a/Implementation/chatapp/src/main/java/chatapp/Main.java +++ b/Implementation/chatapp/src/main/java/chatapp/Main.java @@ -4,7 +4,9 @@ import chatapp.Controller.ChatApp; import javafx.application.Application; import javafx.application.Platform; import javafx.fxml.FXMLLoader; +import javafx.geometry.Rectangle2D; import javafx.scene.Scene; +import javafx.stage.Screen; import javafx.stage.Stage; import java.io.IOException; @@ -12,8 +14,14 @@ import java.io.IOException; public class Main extends Application { ChatApp chatapp; + /** + * Permet de lancer la fenetre principale de l'application + * @param primaryStage notre fenetre principale + * @throws Exception + */ @Override public void start(Stage primaryStage) throws Exception { + Rectangle2D tailleEcran = Screen.getPrimary().getBounds(); this.chatapp = ChatApp.getInstance("Null",1234,this); FXMLLoader fichier = new FXMLLoader(getClass().getResource("/fenetres/ConnexionScreen.fxml")); Scene scene1 = new Scene(fichier.load(),600,400); @@ -21,6 +29,10 @@ public class Main extends Application { primaryStage.setTitle("ChatApp"); primaryStage.setMinWidth(600); primaryStage.setMinHeight(400); + //primaryStage.setMaxWidth(600); + //primaryStage.setMaxHeight(400); + /*primaryStage.setMaxWidth(tailleEcran.getWidth()); + primaryStage.setMaxHeight(tailleEcran.getHeight());*/ primaryStage.show(); primaryStage.centerOnScreen(); chatapp.activerEcouteTCP(); @@ -28,6 +40,10 @@ public class Main extends Application { } + /** + *

Handler associe a la fermeture de l'application

+ * @throws Exception + */ @Override public void stop() throws Exception { if(chatapp.isConnecte()){ diff --git a/Implementation/chatapp/src/main/java/chatapp/Model/DataBase.java b/Implementation/chatapp/src/main/java/chatapp/Model/DataBase.java index 1764bab..e6076a3 100644 --- a/Implementation/chatapp/src/main/java/chatapp/Model/DataBase.java +++ b/Implementation/chatapp/src/main/java/chatapp/Model/DataBase.java @@ -54,7 +54,7 @@ public class DataBase { // Nabil : DECOMMENTER CETTE LIGNE //this.connection = DriverManager.getConnection("jdbc:mysql://localhost/POO_AL_NM?allowPublicKeyRetrieval=true&useSSL=false", "root", "1234"); // Auriane : DECOMMENTER CETTE LIGNE - this.connection = DriverManager.getConnection("jdbc:mysql://localhost:8889/POO_AL_NM?allowPublicKeyRetrieval=true&useSSL=false", "root", "root"); + this.connection = DriverManager.getConnection("jdbc:mysql://localhost/POO_AL_NM?allowPublicKeyRetrieval=true&useSSL=false", "root", "1234"); //this.connection = DriverManager.getConnection(this.DBurl,login,pswd); System.out.println("Connexion Etablie"); } catch (SQLException e) { diff --git a/Implementation/chatapp/src/main/java/chatapp/Protocol/RunnerEcouteTCP.java b/Implementation/chatapp/src/main/java/chatapp/Protocol/RunnerEcouteTCP.java index 44498eb..7e09bf4 100644 --- a/Implementation/chatapp/src/main/java/chatapp/Protocol/RunnerEcouteTCP.java +++ b/Implementation/chatapp/src/main/java/chatapp/Protocol/RunnerEcouteTCP.java @@ -30,7 +30,10 @@ public class RunnerEcouteTCP extends Thread { this.start(); } - + /** + * Permet aux classes qui appelle cette methode de connecter un PropertyChangeListener au PropertyChangeSupport + * @param pcl le propertyChangeListener qui va ecouter les evenements du propertyChangeSupport associe + */ public void addPropertyChangeListener(PropertyChangeListener pcl) { this.pcs.addPropertyChangeListener("NouvelleSession",pcl); } @@ -70,7 +73,7 @@ public class RunnerEcouteTCP extends Thread { } /** - * Methode permettant de recupere la premiere session de clavardage dans 'ListeSessions' + * Methode permettant de recupere la derniere session de clavardage creee dans 'ListeSessions' * @return Premiere Session Active */ public SessionClavardage getSessionClavardage() { diff --git a/Implementation/chatapp/src/main/java/chatapp/Protocol/SessionClavardage.java b/Implementation/chatapp/src/main/java/chatapp/Protocol/SessionClavardage.java index e5c35e5..0a4f3d5 100644 --- a/Implementation/chatapp/src/main/java/chatapp/Protocol/SessionClavardage.java +++ b/Implementation/chatapp/src/main/java/chatapp/Protocol/SessionClavardage.java @@ -91,7 +91,7 @@ public class SessionClavardage extends Thread { MessageHorodate msgh = new MessageHorodate(getU2(),getApp().getMe(),msg,1); try { getOut().writeObject(msgh.toString()); - app.getDb().ajoutHistorique(app.getMe().getId(), u2.getId(),msg); + app.getDb().ajoutHistorique(u2.getId(), app.getMe().getId(),msg); } catch (IOException e) { e.printStackTrace(); } diff --git a/Implementation/chatapp/src/main/java/chatapp/Protocol/UDPEchange.java b/Implementation/chatapp/src/main/java/chatapp/Protocol/UDPEchange.java index 133ce44..fadfbf5 100644 --- a/Implementation/chatapp/src/main/java/chatapp/Protocol/UDPEchange.java +++ b/Implementation/chatapp/src/main/java/chatapp/Protocol/UDPEchange.java @@ -65,7 +65,12 @@ public class UDPEchange { } - + /**

+ * Permet de recuperer l'adresse de l'hote sur le reseau au format IPv4. + * Si plusieurs adresses sont disponibles (plusieurs cartes réseaux), choisit la premiere trouvee + *

+ * @return l'adresse IP au format IPv4 + */ public static InetAddress getCurrentIp() { try { Enumeration networkInterfaces = NetworkInterface diff --git a/Implementation/chatapp/src/main/java/chatapp/View/ChangementPseudo.java b/Implementation/chatapp/src/main/java/chatapp/View/ChangementPseudo.java index 41ab660..b5f82b9 100644 --- a/Implementation/chatapp/src/main/java/chatapp/View/ChangementPseudo.java +++ b/Implementation/chatapp/src/main/java/chatapp/View/ChangementPseudo.java @@ -43,7 +43,11 @@ public class ChangementPseudo { } + @FXML + /** + *

Handler permettant de retourner au menu principal sur pression du MenuButton

+ */ void retourMenu(ActionEvent event) { System.out.println("Retour au menu principal"); Stage stage = (Stage) MenuButton.getScene().getWindow(); @@ -59,6 +63,9 @@ public class ChangementPseudo { } @FXML + /** + *

Handler permettant de lancer la verrification de l'unicite du ppseudo sur pression du validtionButton

+ */ void validerPseudo(ActionEvent event) { boolean pseudoOK = false; try { @@ -79,6 +86,9 @@ public class ChangementPseudo { } } + /** + *

Initialization de la classe ChangementPseudo et permet d'initialiser les parametres

+ */ @FXML // This method is called by the FXMLLoader when initialization is complete void initialize() { chatApp = ChatApp.getInstance(); diff --git a/Implementation/chatapp/src/main/java/chatapp/View/Clavardage.java b/Implementation/chatapp/src/main/java/chatapp/View/Clavardage.java index f4ef160..9e6f66e 100644 --- a/Implementation/chatapp/src/main/java/chatapp/View/Clavardage.java +++ b/Implementation/chatapp/src/main/java/chatapp/View/Clavardage.java @@ -50,6 +50,9 @@ public class Clavardage implements Initializable, PropertyChangeListener { private Integer Indice = 0 ; @FXML + /** + *

Handler gerant l'envoi du message contenu dans le TextField AEnvoyer et sur pression du bouton EnvoyerButton

+ */ void envoyerMessage(ActionEvent event) { String msg = AEnvoyer.getText(); AEnvoyer.clear(); @@ -58,14 +61,16 @@ public class Clavardage implements Initializable, PropertyChangeListener { Date d = new Date(); msg = "Moi (" + d.toString() + ") : " + msg + "\n"; ChatText.appendText(msg); + Indice++; + } } - @FXML // This method is called by the FXMLLoader when initialization is complete - void initialize() { - } - + /** + * Setter + * @param session la session a associer a la classe + */ public void setSession(SessionClavardage session) { this.session = session; @@ -75,6 +80,11 @@ public class Clavardage implements Initializable, PropertyChangeListener { this.pseudonyme1.setText(u2.getPseudo()); } + /** + *

Handler des differents evenements auxquels s'est abonne le PropertyChangeListener + * La classe est informee lorsque la session recoit un message ou lorsque la session se termine

+ * @param evt l'evenement informe par le pcs + */ @Override public void propertyChange(PropertyChangeEvent evt) { switch (evt.getPropertyName()){ @@ -104,15 +114,27 @@ public class Clavardage implements Initializable, PropertyChangeListener { return session; } + /** + * Permet d'initialiser les differents parametres de la classe + * @param location + * @param resources + */ @Override public void initialize(URL location, ResourceBundle resources) { EnvoyerButton.setDefaultButton(true); this.ChatText.setEditable(false); } + /** + *

Permet de recepurer plus de messages stoces dans la database en appuyant sur le bouton plusButton

+ * @param actionEvent + */ public void ajouterMessagesHistorique(ActionEvent actionEvent) { String historique = this.session.getApp().getDb().recupMsg(session.getApp().getMe().getId(),this.u2.getId(), Indice , Indice + 5); - Indice +=5; + //String auxiliaire = ChatText.getText(); + //ChatText.clear(); ChatText.insertText(0,historique); + //ChatText.insertText(0,auxiliaire); + Indice +=5; } } \ No newline at end of file diff --git a/Implementation/chatapp/src/main/java/chatapp/View/ConnexionScreen.java b/Implementation/chatapp/src/main/java/chatapp/View/ConnexionScreen.java index 708ec8a..6ae272f 100644 --- a/Implementation/chatapp/src/main/java/chatapp/View/ConnexionScreen.java +++ b/Implementation/chatapp/src/main/java/chatapp/View/ConnexionScreen.java @@ -34,6 +34,11 @@ public class ConnexionScreen { } + /** + *

Handler permettant de lancer la connexion avec le pseudonyme contenu dans le TextField pseudonyme en appuyant sur le connexionButton + *

+ * @param actionEvent + */ public void connexion(ActionEvent actionEvent) { Boolean connexion = false; try { diff --git a/Implementation/chatapp/src/main/java/chatapp/View/DemarrerSession.java b/Implementation/chatapp/src/main/java/chatapp/View/DemarrerSession.java index d0ac6b0..4d987f4 100644 --- a/Implementation/chatapp/src/main/java/chatapp/View/DemarrerSession.java +++ b/Implementation/chatapp/src/main/java/chatapp/View/DemarrerSession.java @@ -36,11 +36,18 @@ public class DemarrerSession { private Button MenuButton; // Value injected by FXMLLoader private ChatApp chatApp; + /** + *

Handler permettant de demarrer une session de clavardage avec le contact choisi dans la comboBox choixContaact

+ * @param event + */ @FXML void demarrerSessionAvec(ActionEvent event) { chatApp.demarrerSession(choixContact.getValue()); } + /** + *

Handler permettant de retourner au menu principal sur pression du MenuButton

+ */ @FXML void retourMenu(ActionEvent event) { Stage stage = (Stage) MenuButton.getScene().getWindow(); @@ -55,6 +62,9 @@ public class DemarrerSession { stage.show(); } + /** + *

Initialization de la classe ChangementPseudo et permet d'initialiser les parametres

+ */ @FXML // This method is called by the FXMLLoader when initialization is complete void initialize() { this.chatApp = ChatApp.getInstance(); diff --git a/Implementation/chatapp/src/main/java/chatapp/View/FenetreSession.java b/Implementation/chatapp/src/main/java/chatapp/View/FenetreSession.java index 9be24c5..4ca243d 100644 --- a/Implementation/chatapp/src/main/java/chatapp/View/FenetreSession.java +++ b/Implementation/chatapp/src/main/java/chatapp/View/FenetreSession.java @@ -13,6 +13,9 @@ import java.io.IOException; public class FenetreSession extends Stage { SessionClavardage session; + /** + *

Permet l'ouverture de la fenetre associee a la session de clavardage

+ */ public FenetreSession(SessionClavardage session) { FXMLLoader fichier = new FXMLLoader(getClass().getResource("/fenetres/View_Clavardage.fxml")); try{ @@ -27,6 +30,8 @@ public class FenetreSession extends Stage { this.setTitle("Session avec "+session.getU2().getPseudo()); this.setMinWidth(600); this.setMinHeight(400); + //this.setMaxWidth(600); + //this.setMaxHeight(400); this.show(); this.centerOnScreen(); this.setOnCloseRequest(new EventHandler() { 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 0da233c..8c78146 100644 --- a/Implementation/chatapp/src/main/java/chatapp/View/View_Menu.java +++ b/Implementation/chatapp/src/main/java/chatapp/View/View_Menu.java @@ -34,6 +34,10 @@ public class View_Menu { this.pseudonyme.setText(this.chatapp.getMe().getPseudo()); } + /** + *

Handler permettant d'aller a la scene View_Utilisateurs pour afficher la liste des utilisateurs actifs

+ * @param actionEvent + */ public void afficherUtilsActifs(ActionEvent actionEvent) { Stage stage = (Stage) pseudonyme.getScene().getWindow(); Parent root = null; @@ -47,6 +51,10 @@ public class View_Menu { stage.show(); } + /** + *

Handler permettant d'aller a la scene Demarrer_Session pour choisir un utilisateur avec qui clavarder + * @param actionEvent + */ public void demarrerSession(ActionEvent actionEvent) { Stage stage = (Stage) pseudonyme.getScene().getWindow(); Parent root = null; @@ -60,6 +68,10 @@ public class View_Menu { stage.show(); } + /** + *

Handler permettant d'aller a la scene View_ChangementPseudo pour changer son pseudonyme + * @param actionEvent + */ public void changerPseudo(ActionEvent actionEvent) { Stage stage = (Stage) pseudonyme.getScene().getWindow(); Parent root = null; @@ -73,6 +85,10 @@ public class View_Menu { stage.show(); } + /** + *

Handler permettant de se deconnecter et fermer l'application + * @param actionEvent + */ public void deconnexion(ActionEvent actionEvent) { try { chatapp.deconnexion(); 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 6dc3779..96fcb3e 100644 --- a/Implementation/chatapp/src/main/java/chatapp/View/View_Utilisateurs.java +++ b/Implementation/chatapp/src/main/java/chatapp/View/View_Utilisateurs.java @@ -39,6 +39,9 @@ public class View_Utilisateurs { } + /** + *

Handler permettant de retourner au menu principal sur pression du MenuButton

+ */ public void retourMenu(ActionEvent actionEvent) { Stage stage = (Stage) MenuButton.getScene().getWindow(); Parent root = null; diff --git a/Implementation/chatapp/src/main/resources/fenetres/View_ChangementPseudo.fxml b/Implementation/chatapp/src/main/resources/fenetres/View_ChangementPseudo.fxml index 0a7885a..5bfabb7 100644 --- a/Implementation/chatapp/src/main/resources/fenetres/View_ChangementPseudo.fxml +++ b/Implementation/chatapp/src/main/resources/fenetres/View_ChangementPseudo.fxml @@ -42,7 +42,7 @@ - +