From 4f472905421b93dd92d380056549805e594bd1cc Mon Sep 17 00:00:00 2001
From: alartigu Getter : Connecte
@@ -62,8 +75,7 @@ public class ChatApp implements PropertyChangeListener {
*/
public ChatApp(String pseudo, Integer port, Application main){
this.actifUsers = new ListUtilisateurs() ;
- // Recuperer adresse IP de l'utilisateur
- InetAddress ip = UDPEchange.getCurrentIp();
+ InetAddress ip = UDPEchange.getCurrentIp(); // Recuperer adresse IP de l'utilisateur
this.me = new Utilisateur(pseudo,port,ip);
this.actifUsers.addList(getMe());
this.main = main;
@@ -144,9 +156,9 @@ public class ChatApp implements PropertyChangeListener {
* @return False si modiferPseudo a échoué, True sinon
*/
public Boolean modifierPseudoInterne(String nouveau) throws IOException {
- // Message que l'on envoie à tous les utilisateurs actifs
+ // Message que l'on envoie à tous les utilisateurs actifs
String broadcastMessage = "Demande Modification Pseudo\n" + this.getMe().toString() + "\n" + nouveau + "\n";
- UDPEchange.EnvoiBroadcast(broadcastMessage);
+ UDPEchange.envoiBroadcast(broadcastMessage);
try {
Thread.sleep(2000);
/* L'utilisateur doit attendre la reponse de tous les utilisateurs connectes
@@ -159,7 +171,7 @@ public class ChatApp implements PropertyChangeListener {
System.out.println("Modification pseudo reussi");
//Envoi un msg en broadcast a tout les utilisateurs pour les prevenir de son nouveau pseudo//
broadcastMessage = "Modification pseudo reussi\n" + this.getMe().toString() + "\n" + nouveau + "\n";
- UDPEchange.EnvoiBroadcast(broadcastMessage);
+ UDPEchange.envoiBroadcast(broadcastMessage);
//-------Change son propre nom d'utilisateur-------//
this.getActifUsers().modifierList(this.getMe().getPseudo(), nouveau);
this.getMe().setPseudo(nouveau);
@@ -226,10 +238,10 @@ public class ChatApp implements PropertyChangeListener {
* @throws IOException
*/
public Boolean connexionInterne(String pseudo) throws IOException {
- // Message que l'on envoie à tous les utilisateurs actifs
+ // Message que l'on envoie à tous les utilisateurs actifs
this.me.setPseudo(pseudo);
String broadcastMessage = "Connexion\n" + this.getMe().toString() ;
- UDPEchange.EnvoiBroadcast(broadcastMessage);
+ UDPEchange.envoiBroadcast(broadcastMessage);
try {
Thread.sleep(2000); // L'utilisateur doit attendre la reponse de tous les utilisateurs connectes
} catch (InterruptedException e) {
@@ -297,8 +309,7 @@ public class ChatApp implements PropertyChangeListener {
*
*/
private void deconnexionExterne() throws IOException{
- // A IMPLEMENTER
- System.out.println("Deco lancee");
+ System.out.println("Deconnexion lancee");
boolean deco = false;
try {
deco = externeEchange.sendPost("Deconnexion");
@@ -320,7 +331,6 @@ public class ChatApp implements PropertyChangeListener {
}
Platform.exit();
System.exit(0);
-
}
@@ -330,9 +340,9 @@ public class ChatApp implements PropertyChangeListener {
* @throws IOException
*/
public void deconnexionInterne() throws IOException {
- // Message que l'on envoie à tous les utilisateurs actifs
+ // Message que l'on envoie à tous les utilisateurs actifs
String broadcastMessage = "Deconnexion\n" + this.getMe().toString() ;
- UDPEchange.EnvoiBroadcast(broadcastMessage);
+ UDPEchange.envoiBroadcast(broadcastMessage);
//db.majUtilisateursActifs(false,this.me.getId());
this.connecte=false;
try {
@@ -422,7 +432,7 @@ public class ChatApp implements PropertyChangeListener {
public ArrayList
Elle va permettre de faire le lien avec JavaFX.
+ */
public class Main extends Application {
+
+ /* Instance de ChatApp */
ChatApp chatapp;
/**
@@ -21,7 +23,6 @@ public class Main extends Application {
*/
@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);
@@ -29,15 +30,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();
chatapp.activerEcouteUDP();
-
}
/**
@@ -48,8 +44,7 @@ public class Main extends Application {
public void stop() throws Exception {
if(chatapp.isConnecte()){
chatapp.deconnexion();
- }
- else {
+ } else {
super.stop();
Platform.exit();
System.exit(0);
diff --git a/Implementation/chatapp/src/main/java/chatapp/Model/DataBase.java b/Implementation/chatapp/src/main/java/chatapp/Model/DataBase.java
index d3f46ca..fa77ab1 100644
--- a/Implementation/chatapp/src/main/java/chatapp/Model/DataBase.java
+++ b/Implementation/chatapp/src/main/java/chatapp/Model/DataBase.java
@@ -26,12 +26,21 @@ import java.sql.*;
*
- Date d'envoi : Date a laquelle Source a envoyé le message à destinataire
*/
public class DataBase {
- private final String DBurl = "jdbc:mysql://srv-bdens.insa-toulouse.fr:3306/tp_servlet_006?" ;
+
+ /* URL pour accéder à la BDD */
+ private final String dBurl = "jdbc:mysql://srv-bdens.insa-toulouse.fr:3306/tp_servlet_006?" ;
+
+ /* Connection avec la BDD */
private Connection connection = null;
+
+ /* Login pour se connecter à la BDD */
private final String login = "tp_servlet_006";
+
+ /* Mdp pour se connecter à la BDD */
private final String pswd = "baePh9ei";
- private static final DataBase instance = null; // Singleton
+ /* Singleton */
+ private static final DataBase instance = null;
/**
* Constructeur de la database
@@ -52,7 +61,7 @@ public class DataBase {
//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(this.DBurl,login,pswd);
+ this.connection = DriverManager.getConnection(this.dBurl,login,pswd);
System.out.println("Connexion Etablie");
} catch (SQLException e) {
e.printStackTrace();
@@ -72,29 +81,29 @@ public class DataBase {
/**
* Methode permettant de créer une table pour stocker les messages entre deux utilisateurs
- * @param ID1 Id du premier utilisateur
- * @param ID2 Id du second utilisateur
+ * @param iD1 Id du premier utilisateur
+ * @param iD2 Id du second utilisateur
*/
- public void CreationTableHistorique(String ID1 , String ID2) {
+ public void creationTableHistorique(String iD1 , String iD2) {
// Pour eviter d'avoir les tables en double
String petit;
String grand;
- int comparaison = ID1.compareTo(ID2);
+ int comparaison = iD1.compareTo(iD2);
if (comparaison < 0) {
- petit = ID1;
- grand = ID2 ;
+ petit = iD1;
+ grand = iD2 ;
}
else {
- petit = ID2;
- grand = ID1 ;
+ petit = iD2;
+ grand = iD1 ;
}
String nomTable = "Chat_" + petit + "_" + grand ;
- String Requete = "CREATE TABLE IF NOT EXISTS`" + nomTable +"` (\n" + "`Destinataire` varchar(100) NOT NULL,\n" + " `Source` varchar(100) NOT NULL,\n" + " `Envoi` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n" + " `Message` text NOT NULL\n" + ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ;";
- System.out.println(Requete);
- PreparedStatement Ps = null ;
+ String requete = "CREATE TABLE IF NOT EXISTS`" + nomTable +"` (\n" + "`Destinataire` varchar(100) NOT NULL,\n" + " `Source` varchar(100) NOT NULL,\n" + " `Envoi` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n" + " `Message` text NOT NULL\n" + ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ;";
+ System.out.println(requete);
+ PreparedStatement ps = null ;
//Statement est utilisé pour envoyer une requete SQL à la base de donnee
try {
- Ps = connection.prepareStatement(Requete);
+ ps = connection.prepareStatement(requete);
System.out.println("Statement cree");
} catch (SQLException e) {
e.printStackTrace();
@@ -102,8 +111,8 @@ public class DataBase {
}
//Execute la donnée SQL statement passe en parametre
try {
- assert Ps != null;
- Ps.executeUpdate();
+ assert ps != null;
+ ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
System.out.println(" Echec executeUpdate ");
@@ -112,17 +121,17 @@ public class DataBase {
/**
* Méthode permettant de mettre a jour le pseudo d'un utilisateur en fonction de son ID dans la base de donnee
- * @param ID Id de l'utilisateur qui vient de changer de pseudo
- * @param Pseudo Nouveau Pseudo de l'utilisateur
+ * @param iD Id de l'utilisateur qui vient de changer de pseudo
+ * @param pseudo Nouveau Pseudo de l'utilisateur
*/
- public void majPseudo( String ID , String Pseudo) {
+ public void majPseudo( String iD , String pseudo) {
String requete= "UPDATE `Utilisateurs` SET `Pseudo`=? WHERE id=?";
- PreparedStatement Ps = null ;
+ PreparedStatement ps = null ;
//Statement est utilisé pour envoyer une requete SQL à la base de donnee
try {
- Ps = connection.prepareStatement(requete);
- Ps.setString(1, Pseudo); // ? n°1 devient la valeur contenu dans Pseudo
- Ps.setString(2, ID); // ? n°2 devient la valeur contenu dans ID
+ ps = connection.prepareStatement(requete);
+ ps.setString(1, pseudo); // ? n°1 devient la valeur contenu dans Pseudo
+ ps.setString(2, iD); // ? n°2 devient la valeur contenu dans ID
System.out.println("Statement cree");
} catch (SQLException e) {
e.printStackTrace();
@@ -130,8 +139,8 @@ public class DataBase {
}
//Execute la donnée SQL statement passe en parametre
try {
- assert Ps != null;
- Ps.executeUpdate();
+ assert ps != null;
+ ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
System.out.println(" Echec executeUpdate ");
@@ -142,31 +151,31 @@ public class DataBase {
/**
* Méthode permettant de mettre a jour le pseudo d'un utilisateur en fonction de son ID dans la base de donnée
- * @param IDdest Id de l'utilisateur Destinataire du message
- * @param IDsrc Id de celui qui envoi le message
- * @param Msg Message envoye entre les deux utilisateurs
+ * @param iDdest Id de l'utilisateur Destinataire du message
+ * @param iDsrc Id de celui qui envoi le message
+ * @param msg Message envoye entre les deux utilisateurs
*/
- public void ajoutHistorique(String IDdest , String IDsrc, String Msg) {
+ public void ajoutHistorique(String iDdest , String iDsrc, String msg) {
String petit;
String grand;
- int comparaison = IDdest.compareTo(IDsrc);
+ int comparaison = iDdest.compareTo(iDsrc);
if (comparaison < 0) {
- petit = IDdest;
- grand = IDsrc ;
+ petit = iDdest;
+ grand = iDsrc ;
}
else {
- petit = IDsrc;
- grand = IDdest ;
+ petit = iDsrc;
+ grand = iDdest ;
}
String nomTable = "Chat_" + petit + "_" + grand ;
String requete= "INSERT INTO `"+ nomTable +"`(`Destinataire`, `Source`, `Message`) VALUES ( ? , ? , ?)";
- PreparedStatement Ps = null ;
+ PreparedStatement ps = null ;
//Statement est utilisé pour envoyer une requete SQL à la base de donnee
try {
- Ps = connection.prepareStatement(requete);
- Ps.setString(1, IDdest); // ? n°1 devient la valeur contenu dans IDdest
- Ps.setString(2, IDsrc); // ? n°2 devient la valeur contenu dans IDsrc
- Ps.setString(3, Msg); // ? n°3 devient la valeur contenu dans Msg
+ ps = connection.prepareStatement(requete);
+ ps.setString(1, iDdest); // ? n°1 devient la valeur contenu dans IDdest
+ ps.setString(2, iDsrc); // ? n°2 devient la valeur contenu dans IDsrc
+ ps.setString(3, msg); // ? n°3 devient la valeur contenu dans Msg
//La date de l'envoi n'a pas besoin d'être renseigné, elle est automatique
System.out.println("Statement cree");
} catch (SQLException e) {
@@ -175,8 +184,8 @@ public class DataBase {
}
//Execute la donnée SQL statement passe en parametre
try {
- assert Ps != null;
- Ps.executeUpdate();
+ assert ps != null;
+ ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
System.out.println(" Echec executeUpdate ");
@@ -186,23 +195,23 @@ public class DataBase {
/**
* Méthode permettant d'ajouter un utilisateur dans la base de donnée si celui-ci n'existe pas déjà
- * @param ID Id de l'utilisateur que l'on veut rajouter
- * @param Pseudo Pseudo actuelle de l'utilisateur
+ * @param iD Id de l'utilisateur que l'on veut rajouter
+ * @param pseudo Pseudo actuelle de l'utilisateur
*/
- public void ajoutUtilisateurs(String ID , String Pseudo ) {
- if(this.idExiste(ID)){
- this.majPseudo(ID, Pseudo);
+ public void ajoutUtilisateurs(String iD , String pseudo ) {
+ if(this.idExiste(iD)){
+ this.majPseudo(iD, pseudo);
}
else {
// L'utilisateur n'existe pas , on va le rajouter.
- System.out.println("On rajoute l'utilisateur " + Pseudo);
+ System.out.println("On rajoute l'utilisateur " + pseudo);
String requete = "INSERT INTO `Utilisateurs` (`ID`, `Pseudo`, `Actif`) VALUES ( ? , ? , '1')";
- PreparedStatement Ps = null;
+ PreparedStatement ps = null;
//Statement est utilisé pour envoyer une requete SQL à la base de donnee
try {
- Ps = connection.prepareStatement(requete);
- Ps.setString(1, ID); // ? n°1 devient la valeur contenu dans ID
- Ps.setString(2, Pseudo); // ? n°2 devient la valeur contenu dans Pseudo
+ ps = connection.prepareStatement(requete);
+ ps.setString(1, iD); // ? n°1 devient la valeur contenu dans ID
+ ps.setString(2, pseudo); // ? n°2 devient la valeur contenu dans Pseudo
System.out.println("Statement cree");
} catch (SQLException e) {
e.printStackTrace();
@@ -210,8 +219,8 @@ public class DataBase {
}
//Execute la donnée SQL statement passe en parametre
try {
- assert Ps != null;
- Ps.executeUpdate();
+ assert ps != null;
+ ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
System.out.println(" Echec executeUpdate ");
@@ -250,23 +259,23 @@ public class DataBase {
/**
* Méthode permettant de récupérer les N derniers messages envoyés entre 2 utilisateurs
- * @param ID Utilisateur associé a ChatApp
- * @param IDdestinataire Celui avec qui correspond ID
- * @param N Le nombre de messages souhaités
+ * @param iD Utilisateur associé a ChatApp
+ * @param iDdestinataire Celui avec qui correspond ID
+ * @param n Le nombre de messages souhaités
* @return Les N derniers Messages
*/
- public String recupNMsg(String ID, String IDdestinataire, int N) {
- StringBuilder Msg = new StringBuilder();
+ public String recupNMsg(String iD, String iDdestinataire, int n) {
+ StringBuilder msg = new StringBuilder();
String petit;
String grand;
- int comparaison = ID.compareTo(IDdestinataire);
+ int comparaison = iD.compareTo(iDdestinataire);
if (comparaison < 0) {
- petit = ID;
- grand = IDdestinataire;
+ petit = iD;
+ grand = iDdestinataire;
}
else {
- petit = IDdestinataire;
- grand = ID ;
+ petit = iDdestinataire;
+ grand = iD ;
}
String nomTable = "Chat_" + petit + "_" + grand ;
String requete = "SELECT * FROM `"+ nomTable +"`";
@@ -283,23 +292,23 @@ public class DataBase {
} catch (SQLException throwables) {
throwables.printStackTrace();
}
- Integer Taille = tailleBDD(nomTable);
- if(Taille < N ){
- N = Taille ;
+ Integer taille = tailleBDD(nomTable);
+ if(taille < n ){
+ n = taille ;
}
- for(int i = 0 ; i < N; i++){
+ for(int i = 0 ; i < n; i++){
try {
assert rs != null;
if( rs.next()){
- String IDSource = rs.getString("Source");
- String Envoi = rs.getTimestamp("Envoi").toString();
- String Message = rs.getString("Message");
- if (IDSource.equals(ID)) Msg.append("Moi (").append(Envoi).append(") : ").append(Message);
+ String iDSource = rs.getString("Source");
+ String envoi = rs.getTimestamp("Envoi").toString();
+ String message = rs.getString("Message");
+ if (iDSource.equals(iD)) msg.append("Moi (").append(envoi).append(") : ").append(message);
else {
- String PseudoSource = getPseudo(IDSource) ;
- Msg.append(PseudoSource).append(" (").append(Envoi).append(") : ").append(Message);
+ String pseudoSource = getPseudo(iDSource) ;
+ msg.append(pseudoSource).append(" (").append(envoi).append(") : ").append(message);
}
- Msg.append('\n');
+ msg.append('\n');
}
// MSG de la forme :
// Source (Date) : Texte
@@ -307,7 +316,7 @@ public class DataBase {
throwables.printStackTrace();
}
}
- return Msg.toString();
+ return msg.toString();
}
/**
@@ -316,7 +325,7 @@ public class DataBase {
* @return Pseudo actuel
*/
private String getPseudo(String idSource) {
- String Pseudo = "" ;
+ String pseudo = "" ;
String requete= "SELECT * FROM `Utilisateurs` WHERE `ID` LIKE '" + idSource + "'";
Statement stmt = null;
ResultSet rs = null ;
@@ -334,34 +343,34 @@ public class DataBase {
try {
assert rs != null;
if (rs.next()){
- Pseudo = rs.getString("Pseudo") ;
+ pseudo = rs.getString("Pseudo") ;
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
- return Pseudo ;
+ return pseudo ;
}
/**
* Méthode permettant de récupérer les messages d'une plage de donnée [deb,fin] envoyés entre 2 utilisateurs
- * @param ID Utilisateur associé a ChatApp
- * @param IDdestinataire Celui avec qui correspond ID
+ * @param iD Utilisateur associé a ChatApp
+ * @param iDdestinataire Celui avec qui correspond ID
* @param deb On veut les messages à partir de l'indice deb
* @param fin On veut les messages jusqu'a l'indice fin
* @return Les messages d'une plage de donnée [deb,fin]
*/
- public String recupMsg(String ID, String IDdestinataire, int deb , int fin) {
- StringBuilder Msg = new StringBuilder();
+ public String recupMsg(String iD, String iDdestinataire, int deb , int fin) {
+ StringBuilder msg = new StringBuilder();
String petit;
String grand;
- int comparaison = ID.compareTo(IDdestinataire);
+ int comparaison = iD.compareTo(iDdestinataire);
if (comparaison < 0) {
- petit = ID;
- grand = IDdestinataire;
+ petit = iD;
+ grand = iDdestinataire;
}
else {
- petit = IDdestinataire;
- grand = ID ;
+ petit = iDdestinataire;
+ grand = iD ;
}
String nomTable = "Chat_" + petit + "_" + grand ;
String requete = "SELECT * FROM `"+ nomTable+"`";
@@ -378,25 +387,25 @@ public class DataBase {
} catch (SQLException throwables) {
throwables.printStackTrace();
}
- Integer Taille = tailleBDD(nomTable);
- if(Taille < fin ){
- fin = Taille ;
+ Integer taille = tailleBDD(nomTable);
+ if(taille < fin ){
+ fin = taille ;
}
for(int i = 0 ; i < fin; i++){
try {
assert rs != null;
if( rs.next()){
- String IDSource = rs.getString("Source");
- String Envoi = rs.getTimestamp("Envoi").toString();
- String Message = rs.getString("Message");
+ String iDSource = rs.getString("Source");
+ String envoi = rs.getTimestamp("Envoi").toString();
+ String message = rs.getString("Message");
if (i >= deb) {
- if (IDSource.equals(ID)) {
- Msg.append("Moi (").append(Envoi).append(") : ").append(Message);
+ if (iDSource.equals(iD)) {
+ msg.append("Moi (").append(envoi).append(") : ").append(message);
} else {
- String PseudoSource = getPseudo(IDSource);
- Msg.append(PseudoSource).append(" (").append(Envoi).append(") : ").append(Message);
+ String PseudoSource = getPseudo(iDSource);
+ msg.append(PseudoSource).append(" (").append(envoi).append(") : ").append(message);
}
- Msg.append('\n');
+ msg.append('\n');
}
}
} catch (SQLException throwables) {
@@ -404,7 +413,7 @@ public class DataBase {
}
}
- return Msg.toString();
+ return msg.toString();
}
/**
@@ -413,7 +422,7 @@ public class DataBase {
* @return Taille de la BDD
*/
public Integer tailleBDD(String nomTable) {
- Integer Taille = 0 ;
+ Integer taille = 0 ;
String requete = "SELECT * FROM `"+nomTable+ "`";
Statement stmt = null;
ResultSet rs = null ;
@@ -435,20 +444,20 @@ public class DataBase {
} catch (SQLException throwables) {
throwables.printStackTrace();
}
- Taille++; // on incremente Taille pour chaque solution trouvée
+ taille++; // on incremente Taille pour chaque solution trouvée
}
- return Taille;
+ return taille;
}
/**
* Methode permettant de savoir si un utilisateur existe dans la base de donnée 'Utilisateurs'
- * @param ID On recherche l'utilisateur dont l'ID est ID
+ * @param iD On recherche l'utilisateur dont l'ID est ID
* @return True si l'utilisateur existe , False sinon
*/
- public boolean idExiste(String ID){
+ public boolean idExiste(String iD){
boolean existe = false ;
// Verification que l'utilisateur n'existe pas
- String requete = "SELECT * FROM `Utilisateurs` WHERE `ID` LIKE '" + ID +"'";
+ String requete = "SELECT * FROM `Utilisateurs` WHERE `ID` LIKE '" + iD +"'";
Statement stmt;
ResultSet rs = null ;
try {
@@ -469,22 +478,22 @@ public class DataBase {
/**
* Méthode permettant de récupérer le nom de la table où sont stockés les messages de 2 utilisateurs.
- * @param U1 Un des 2 utilisateurs
- * @param U2 Le second utilisateur
+ * @param u1 Un des 2 utilisateurs
+ * @param u2 Le second utilisateur
* @return Le nom de la table des historiques
*/
- public String getNomTable(Utilisateur U1, Utilisateur U2){
+ public String getNomTable(Utilisateur u1, Utilisateur u2){
String petit;
String grand;
int comparaison;
- comparaison = U1.getId().compareTo(U2.getId());
+ comparaison = u1.getId().compareTo(u2.getId());
if (comparaison < 0) {
- petit = U1.getId();
- grand = U2.getId();
+ petit = u1.getId();
+ grand = u2.getId();
}
else {
- petit = U2.getId() ;
- grand = U1.getId() ;
+ petit = u2.getId() ;
+ grand = u1.getId() ;
}
return "Chat_" + petit + "_" + grand ;
}
diff --git a/Implementation/chatapp/src/main/java/chatapp/Model/ListUtilisateurs.java b/Implementation/chatapp/src/main/java/chatapp/Model/ListUtilisateurs.java
index c584994..461a8a1 100644
--- a/Implementation/chatapp/src/main/java/chatapp/Model/ListUtilisateurs.java
+++ b/Implementation/chatapp/src/main/java/chatapp/Model/ListUtilisateurs.java
@@ -1,8 +1,6 @@
package chatapp.Model;
-import chatapp.Controller.ChatApp;
-import java.io.IOException;
import java.net.InetAddress;
import java.util.ArrayList;
@@ -13,7 +11,7 @@ import java.util.ArrayList;
*/
public class ListUtilisateurs {
- // On conserve dans cette liste tout les utilisateurs actuellement actifs
+ /* On conserve dans cette liste tout les utilisateurs actuellement actifs */
private ArrayList
* Classe représentant une session de clavardage.
*
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
+ *
- link : la socket associée à la session de clavardage
+ *
- app : L'instance de chatapp
*
- u2: l'utilisateur avec lequel on communique
*
- out: le flux de donnees sortant
*
- in: le flux de donnees entrant
@@ -31,14 +29,27 @@ import javafx.application.Platform;
*
Ce constructeur crée une session de clavardage quand on recoit une requete
@@ -54,8 +65,7 @@ public class SessionClavardage extends Thread { }catch(Exception e) { e.getStackTrace(); } - this.derniersMsg = new ArrayListMethode lancee par le thread, permet de receptionner les messages horodates recus et d'agir en conséquence selon le type de message recu
*/ public void run() { - String plaintext = null; + String plaintext; MessageHorodate msg = null; System.out.println("Session demarre"); - //app.getDb().CreationTableHistorique(app.getMe().getId(), u2.getId()); + //app.getDb().creationTableHistorique(app.getMe().getId(), u2.getId()); while(true) { try { plaintext = (String) getIn().readObject(); @@ -175,7 +186,7 @@ public class SessionClavardage extends Thread { e.printStackTrace(); } catch (IOException e) { pcs.firePropertyChange("FinDeLaSession", false, true); - app.ListeCommunication.remove(u2.getId()); + app.listeCommunication.remove(u2.getId()); break; } if(msg.getType() == 2) { @@ -185,13 +196,13 @@ public class SessionClavardage extends Thread { } catch (IOException e) { break; } - app.ListeCommunication.remove(u2.getId()); + app.listeCommunication.remove(u2.getId()); break; } else if(msg.getType() == 3) { System.out.println("Session Initiee"); this.u2 = msg.getSource() ; - app.ListeCommunication.add(u2.getId()); + app.listeCommunication.add(u2.getId()); Platform.runLater( () -> new FenetreSession(this) ); @@ -199,7 +210,6 @@ public class SessionClavardage extends Thread { else{ derniersMsg.add(msg); pcs.firePropertyChange("MessageRecu",false,true);} - } } @@ -275,12 +285,4 @@ public class SessionClavardage extends Thread { this.u2 = u2; } - /** - * Getter : SessionID - * @return SessionID - */ - public int getSessionID() { - return SessionID; - } - } diff --git a/Implementation/chatapp/src/main/java/chatapp/Protocol/UDPEchange.java b/Implementation/chatapp/src/main/java/chatapp/Protocol/UDPEchange.java index 5108e5c..270b6ec 100644 --- a/Implementation/chatapp/src/main/java/chatapp/Protocol/UDPEchange.java +++ b/Implementation/chatapp/src/main/java/chatapp/Protocol/UDPEchange.java @@ -24,10 +24,8 @@ import chatapp.Model.*; */ public class UDPEchange { + /* True si l'utilisateur peut se connecter avec ce nom d'utilisateur , False sinon */ private static Boolean Connecte = true; - // True si l'utilisateur peut se connecter avec ce nom d'utilisateur , False sinon - - private static Boolean EcouteEnCours = false; /** * Getter : Connecte @@ -64,7 +62,6 @@ public class UDPEchange { PseudoValide = value ; } - /**
* Getter : Ip
*
Permet de recuperer l'adresse de l'hote sur le reseau au format IPv4.
@@ -94,6 +91,7 @@ public class UDPEchange {
}
return null;
}
+
/**
*
* Méthode permettant d'envoyer un message à tout les utilisateurs à l'aide du protocole UDP @@ -101,9 +99,9 @@ public class UDPEchange { * @param broadcastMessage Message à transmettre aux utilisateurs * @throws IOException */ - public static void EnvoiBroadcast(String broadcastMessage) throws IOException { + public static void envoiBroadcast(String broadcastMessage) throws IOException { int port = 1234 ; - // Envoie en broadcast à tous les utilsateurs + // Envoie en broadcast à tous les utilisateurs for (InetAddress broadcastAddr : listAllBroadcastAddresses()) { DatagramSocket socket = new DatagramSocket(); socket.setBroadcast(true); @@ -127,8 +125,7 @@ public class UDPEchange { *
* @param app L'application de chat de l'utilisateur qui receptionne le message */ - public static void ecouteUDP(ChatApp app) - { + public static void ecouteUDP(ChatApp app) { DatagramSocket socket = null; ExecutorService exec = Executors.newFixedThreadPool(1000); try { @@ -157,22 +154,22 @@ public class UDPEchange { * Méthode permettant d'envoyer un message a utilisateur en particulier * a l'aide du protocole UDP * - * @param Adress L'adresse IP de l'utilisateur - * @param Message Message message à transmettre a l'utilisateur + * @param address L'adresse IP de l'utilisateur + * @param message Message message à transmettre a l'utilisateur * @throws IOException */ - public static void envoiUnicast( InetAddress Adress , String Message ) throws IOException { + public static void envoiUnicast( InetAddress address , String message ) throws IOException { if (ChatApp.getInstance().isConnecte()){ DatagramSocket socket = new DatagramSocket(); - byte[]buffer = Message.getBytes(); - DatagramPacket packet = new DatagramPacket( buffer, buffer.length, Adress, 1234 ); + byte[]buffer = message.getBytes(); + DatagramPacket packet = new DatagramPacket( buffer, buffer.length, address, 1234 ); socket.send(packet); socket.close(); System.out.println("***********Message envoye***********"); - System.out.println("Dest Ip: " + Adress.toString()); + System.out.println("Dest Ip: " + address.toString()); System.out.println("Dest port: " + String.valueOf(1234)); System.out.println("Contenu: "); - System.out.println(Message); + System.out.println(message); System.out.println("************************************"); } } @@ -215,6 +212,11 @@ class RunnerUDP implements Runnable { final DatagramPacket data ; ChatApp app ; + /** + * Constructeur RunnerUDP + * @param data Un datagramPacket + * @param app Instance de chatapp + */ public RunnerUDP(DatagramPacket data, ChatApp app) { this.data= data; this.app = app ; @@ -310,19 +312,19 @@ class RunnerUDP implements Runnable { //******************************************************************************************************************* if (Type.equals("Demande Modification Pseudo")) { - Utilisateur Source = Utilisateur.stringToUtilisateur(received.split("\n")[1]); - if (! Source.equals(this.app.getMe())) { // On envoit en broadcast mais on ne souhaite pas recevoir de message de nous même + Utilisateur source = Utilisateur.stringToUtilisateur(received.split("\n")[1]); + if (! source.equals(this.app.getMe())) { // On envoit en broadcast mais on ne souhaite pas recevoir de message de nous même String nouveau = received.split("\n")[2] ; - String Message = ""; + String message = ""; if(( app.getActifUsers() ).verifierUnicite(nouveau)) { - Message = "Bon Choix Pseudo\n" + nouveau ; + message = "Bon Choix Pseudo\n" + nouveau ; } else { - Message = "Mauvais Choix Pseudo\n" ; + message = "Mauvais Choix Pseudo\n" ; } - System.out.println(Message); + System.out.println(message); try { - UDPEchange.envoiUnicast(Source.getIp(),Message); + UDPEchange.envoiUnicast(source.getIp(),message); } catch (IOException e) { e.printStackTrace(); } @@ -335,18 +337,18 @@ class RunnerUDP implements Runnable { //************************************************************************************************************ if (Type.equals("Modification pseudo reussi")) { - Utilisateur Source = Utilisateur.stringToUtilisateur(received.split("\n")[1]); - if (! Source.equals(this.app.getMe())) { // On envoit en broadcast mais on ne souhaite pas recevoir de message de nous même + Utilisateur source = Utilisateur.stringToUtilisateur(received.split("\n")[1]); + if (! source.equals(this.app.getMe())) { // On envoit en broadcast mais on ne souhaite pas recevoir de message de nous même String nouveau = received.split("\n")[2] ; System.out.println("Je rentre ici"); - if(app.getActifUsers().appartient(Source)) { // On verifie d'abord que Source appartient bien a la liste des utilisateurs actifs - System.out.println(Source.getPseudo() + " va etre changer en : " + nouveau); - app.getActifUsers().modifierList(Source.getPseudo(), nouveau); + if(app.getActifUsers().appartient(source)) { // On verifie d'abord que Source appartient bien a la liste des utilisateurs actifs + System.out.println(source.getPseudo() + " va etre changer en : " + nouveau); + app.getActifUsers().modifierList(source.getPseudo(), nouveau); } else { - System.out.println(Source.getPseudo() + " va etre ajouter en : " + nouveau); + System.out.println(source.getPseudo() + " va etre ajouter en : " + nouveau); // Suite a une perte d'un message lors d'une connexion l'utilisateur Source n'apparait pas dans la liste - Source.setPseudo(nouveau); - app.getActifUsers().addList(Source); + source.setPseudo(nouveau); + app.getActifUsers().addList(source); } } } @@ -390,8 +392,4 @@ class RunnerUDP implements Runnable { app.getActifUsers().addList(nouveau); } } - - - - } diff --git a/Implementation/chatapp/src/main/java/chatapp/View/ChangementPseudo.java b/Implementation/chatapp/src/main/java/chatapp/View/ChangementPseudo.java index 6dc5ae0..82e41ff 100644 --- a/Implementation/chatapp/src/main/java/chatapp/View/ChangementPseudo.java +++ b/Implementation/chatapp/src/main/java/chatapp/View/ChangementPseudo.java @@ -41,12 +41,8 @@ public class ChangementPseudo { @FXML // fx:id="MenuButton" private Button MenuButton; // Value injected by FXMLLoader + /* Une instance de chatApp */ private ChatApp chatApp; - @FXML - void nouveauPseudo(ActionEvent event) { - - } - @FXML /** @@ -100,6 +96,5 @@ public class ChangementPseudo { chatApp = ChatApp.getInstance(); pseudonyme1.setText(chatApp.getMe().getPseudo()); this.validationButton.setDefaultButton(true); - //System.out.println(this.validationButton.isDefaultButton()); } } \ No newline at end of file diff --git a/Implementation/chatapp/src/main/java/chatapp/View/Clavardage.java b/Implementation/chatapp/src/main/java/chatapp/View/Clavardage.java index dcc4d5e..413d4be 100644 --- a/Implementation/chatapp/src/main/java/chatapp/View/Clavardage.java +++ b/Implementation/chatapp/src/main/java/chatapp/View/Clavardage.java @@ -9,7 +9,6 @@ import java.text.SimpleDateFormat; import java.util.Date; import java.util.ResourceBundle; -import chatapp.Controller.ChatApp; import chatapp.Model.MessageHorodate; import chatapp.Model.Utilisateur; import chatapp.Protocol.SessionClavardage; @@ -52,9 +51,15 @@ public class Clavardage implements Initializable, PropertyChangeListener { @FXML // fx:id="MenuButton" + /* L'utilisateur destinataire */ private Utilisateur u2; + + /* Une session de clavardage */ private SessionClavardage session; + + /* Le nom de la table dans la BDD stockant l'historique des messages */ private String nomTable; + @FXML /** *Handler gerant l'envoi du message contenu dans le TextField AEnvoyer et sur pression du bouton EnvoyerButton
diff --git a/Implementation/chatapp/src/main/java/chatapp/View/ConnexionScreen.java b/Implementation/chatapp/src/main/java/chatapp/View/ConnexionScreen.java index f3fa2cc..d3c0996 100644 --- a/Implementation/chatapp/src/main/java/chatapp/View/ConnexionScreen.java +++ b/Implementation/chatapp/src/main/java/chatapp/View/ConnexionScreen.java @@ -24,10 +24,16 @@ import javafx.stage.Stage; */ public class ConnexionScreen { + /* Bouton de connexion */ public Button connexionButton; + /* Zone de texte où inserer le pseudonyme souhaité */ public TextField pseudonyme; + + /* RadioButton : l'utilisateur est distant */ public RadioButton remoteButton; + + /* RadioButton : l'utilisateur est local */ public RadioButton localButton; @FXML // ResourceBundle that was given to the FXMLLoader @@ -38,8 +44,7 @@ public class ConnexionScreen { @FXML // This method is called by the FXMLLoader when initialization is complete void initialize() { - connexionButton.setDefaultButton(true); - + connexionButton.setDefaultButton(true); // Appuyer sur entrée equivaut a cliquer sur le bouton de connexion } /** diff --git a/Implementation/chatapp/src/main/java/chatapp/View/DemarrerSession.java b/Implementation/chatapp/src/main/java/chatapp/View/DemarrerSession.java index 4459e4f..fd90aca 100644 --- a/Implementation/chatapp/src/main/java/chatapp/View/DemarrerSession.java +++ b/Implementation/chatapp/src/main/java/chatapp/View/DemarrerSession.java @@ -39,6 +39,8 @@ public class DemarrerSession { @FXML // fx:id="MenuButton" private Button MenuButton; // Value injected by FXMLLoader + + /* Instance de chatApp */ private ChatApp chatApp; /** diff --git a/Implementation/chatapp/src/main/java/chatapp/View/FenetreSession.java b/Implementation/chatapp/src/main/java/chatapp/View/FenetreSession.java index cc43ca1..4726061 100644 --- a/Implementation/chatapp/src/main/java/chatapp/View/FenetreSession.java +++ b/Implementation/chatapp/src/main/java/chatapp/View/FenetreSession.java @@ -1,22 +1,18 @@ package chatapp.View; import chatapp.Protocol.SessionClavardage; -import javafx.event.EventHandler; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; -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 @@ -26,24 +22,16 @@ public class FenetreSession extends Stage { try{ Parent rootchat = fichier.load(); Clavardage controller = fichier.getController(); - System.out.println("Session id "+session.getSessionID()); - //controller.printsalut(); controller.setSession(session); - Scene scene1 = null; + Scene scene1; scene1 = new Scene(rootchat,600,400); this.setScene(scene1); 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* Classe representant la page d'accueil. Elle est composé d'un menu en haut a gauche. @@ -23,13 +23,24 @@ import javafx.stage.Stage; */ public class View_Menu { + /* Le pseudo de l'utilisateur */ public Text pseudonyme; + + /* Choix dans la bar de menu : Connaitre les utilisateurs actifs */ public MenuItem utilsActifsButton; + + /* Choix dans la bar de menu : Demarrer une session de clavardage */ public MenuItem demarrerSessionButton; + + /* Choix dans la bar de menu : Changer de pseudo */ public MenuItem changerPseudoButton; + @FXML // ResourceBundle that was given to the FXMLLoader private ResourceBundle resources; + + /* Une instance de chatApp */ private ChatApp chatapp; + @FXML // URL location of the FXML file that was given to the FXMLLoader private URL location; @@ -97,9 +108,6 @@ public class View_Menu { public void deconnexion(ActionEvent actionEvent) { try { chatapp.deconnexion(); - /*chatapp.getMain().stop(); - Platform.exit(); - System.exit(0);*/ } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { 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 d7ebf3a..4fb4bef 100644 --- a/Implementation/chatapp/src/main/java/chatapp/View/View_Utilisateurs.java +++ b/Implementation/chatapp/src/main/java/chatapp/View/View_Utilisateurs.java @@ -22,8 +22,12 @@ import javafx.stage.Stage; */ public class View_Utilisateurs { + /* La zone d'affichage des utilisateurs actifs */ public TextArea ListeUtilisateurs; + + /* Bouton de retour au menu */ public Button MenuButton; + @FXML // ResourceBundle that was given to the FXMLLoader private ResourceBundle resources; @@ -38,8 +42,6 @@ public class View_Utilisateurs { ListeUtilisateurs.appendText( " - " +elem.getPseudo() + '\n'); } ListeUtilisateurs.setEditable(false); - - } /**