From 508a1b89e8c1730666280a37e378692cdc7e3bdc Mon Sep 17 00:00:00 2001 From: Nabzzz Date: Mon, 21 Dec 2020 11:29:19 +0100 Subject: [PATCH] Debogage GUI --- Implementation/.gitignore | 84 +++++++++++ Implementation/src/Controller/ChatApp.class | Bin 6106 -> 0 bytes Implementation/src/Controller/ChatApp.java | 4 +- .../src/Controller/Historique.class | Bin 2006 -> 0 bytes Implementation/src/Controller/Historique.java | 63 -------- .../src/Controller/ListUtilisateurs.class | Bin 3187 -> 0 bytes .../src/Controller/ListUtilisateurs.java | 125 --------------- .../src/Controller/MessageHorodate.class | Bin 3377 -> 0 bytes .../src/Controller/MessageHorodate.java | 142 ------------------ .../src/Controller/Modification_Pseudo.java | 51 ------- .../src/Controller/Utilisateur.class | Bin 2623 -> 0 bytes .../src/Controller/Utilisateur.java | 77 ---------- .../src/Protocoles/RunnerEcouteTCP.class | Bin 1719 -> 0 bytes .../src/Protocoles/RunnerEcouteTCP.java | 3 +- .../src/Protocoles/RunnerEcouteUDP.class | Bin 448 -> 0 bytes .../src/Protocoles/RunnerTCPEcoute.class | Bin 4324 -> 0 bytes .../src/Protocoles/RunnerTCPEnvoi.class | Bin 2804 -> 0 bytes Implementation/src/Protocoles/RunnerUDP.class | Bin 4024 -> 0 bytes .../src/Protocoles/SessionClavardage.class | Bin 4583 -> 0 bytes .../src/Protocoles/SessionClavardage.java | 6 +- .../src/Protocoles/TCPEchange.class | Bin 2323 -> 0 bytes Implementation/src/Protocoles/TCPEchange.java | 1 + .../src/Protocoles/UDPEchange.class | Bin 5788 -> 0 bytes Implementation/src/Protocoles/UDPEchange.java | 1 + Implementation/src/View/ViewSession.java | 2 + Implementation/src/View/View_Accueil.java | 4 +- Implementation/src/View/View_Clavardage.java | 1 + Implementation/src/View/View_Menu.java | 12 +- 28 files changed, 106 insertions(+), 470 deletions(-) delete mode 100644 Implementation/src/Controller/ChatApp.class delete mode 100644 Implementation/src/Controller/Historique.class delete mode 100644 Implementation/src/Controller/Historique.java delete mode 100644 Implementation/src/Controller/ListUtilisateurs.class delete mode 100644 Implementation/src/Controller/ListUtilisateurs.java delete mode 100644 Implementation/src/Controller/MessageHorodate.class delete mode 100644 Implementation/src/Controller/MessageHorodate.java delete mode 100644 Implementation/src/Controller/Modification_Pseudo.java delete mode 100644 Implementation/src/Controller/Utilisateur.class delete mode 100644 Implementation/src/Controller/Utilisateur.java delete mode 100644 Implementation/src/Protocoles/RunnerEcouteTCP.class delete mode 100644 Implementation/src/Protocoles/RunnerEcouteUDP.class delete mode 100644 Implementation/src/Protocoles/RunnerTCPEcoute.class delete mode 100644 Implementation/src/Protocoles/RunnerTCPEnvoi.class delete mode 100644 Implementation/src/Protocoles/RunnerUDP.class delete mode 100644 Implementation/src/Protocoles/SessionClavardage.class delete mode 100644 Implementation/src/Protocoles/TCPEchange.class delete mode 100644 Implementation/src/Protocoles/UDPEchange.class diff --git a/Implementation/.gitignore b/Implementation/.gitignore index ae3c172..7f6bfa0 100644 --- a/Implementation/.gitignore +++ b/Implementation/.gitignore @@ -1 +1,85 @@ +############################## +## Java +############################## +.mtj.tmp/ +*.class +*.jar +*.war +*.ear +*.nar +hs_err_pid* + +############################## +## Maven +############################## +target/ +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +pom.xml.next +pom.xml.bak +release.properties +dependency-reduced-pom.xml +buildNumber.properties +.mvn/timing.properties +.mvn/wrapper/maven-wrapper.jar + +############################## +## Gradle +############################## /bin/ +bin/ +build/ +.gradle +.gradletasknamecache +gradle-app.setting +!gradle-wrapper.jar + +############################## +## IntelliJ +############################## +out/ +.idea/ +.idea_modules/ +*.iml +*.ipr +*.iws + +############################## +## Eclipse +############################## +.settings/ +bin/ +tmp/ +.metadata +.classpath +.project +*.tmp +*.bak +*.swp +*~.nib +local.properties +.loadpath +.factorypath + +############################## +## NetBeans +############################## +nbproject/private/ +build/ +nbbuild/ +dist/ +nbdist/ +nbactions.xml +nb-configuration.xml + +############################## +## Visual Studio Code +############################## +.vscode/ +.code-workspace + +############################## +## OS X +############################## +.DS_Store diff --git a/Implementation/src/Controller/ChatApp.class b/Implementation/src/Controller/ChatApp.class deleted file mode 100644 index 7f8dc3b3273c26159f5e430e6ff067bd98d7328e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6106 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 diff --git a/Implementation/src/Controller/ChatApp.java b/Implementation/src/Controller/ChatApp.java index 2aad060..80c92e6 100644 --- a/Implementation/src/Controller/ChatApp.java +++ b/Implementation/src/Controller/ChatApp.java @@ -16,6 +16,7 @@ import java.util.Objects; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import src.Protocoles.*; +import src.Model.*; /** *

@@ -23,7 +24,7 @@ import src.Protocoles.*; *

*/ -public class ChatApp { +public class ChatApp extends Thread{ /* Liste des utilisateurs actifs */ private ListUtilisateurs actifUsers ; @@ -196,7 +197,6 @@ public class ChatApp { return h ; } } - public static void main (String[] args) throws IOException { ChatApp app = new ChatApp(args[0],Integer.parseInt(args[1])) ; System.out.println("On lance le chatapp"); diff --git a/Implementation/src/Controller/Historique.class b/Implementation/src/Controller/Historique.class deleted file mode 100644 index ded444cf6f636ec725a68ebdd74848990a8ff965..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2006 zcmaJ?TT>iG6#kk81}4Kr$c?KLLx5cp7BB?D5Ht`G;zH2nVu-h9rvnpaXV#hCRN=Ef z!e@Q(RV~?6VU=b1Wcibdlf4%rCmEXO9nX;q42jX?b}L%YszEn!2?j$?806ARz9$3Ubw!X~aYE?_ z&eui3(6kkbV3MIfQzx_~9oGrD6ve<&cwK zQ1X`zT)|a_u8Or4Kk#irWVn(!N7Yig*A4Wbm%`w-O>(1=U{$DAa<>)z7|<|i;BA;S z*~lJ+Qshb7FH%loD~_Mu2pmslWgvLoYQZ}U6OTlmlh6CYw1w%8@aNB++<|%)cpx3& zM(l$(nbI+YTN;K9j9~OM^jc&Ft)T3P335IKVekiC`IWBh`c|cSsxhF#fxtgrXMhvPTrwqJ{yM(nbRMfR{QG-|-?lBD3 z)p$*WA;o-J7ah}>HK^a_7+MJ{>lcF@`8YV5yr?^L%;SNE1q1KleTLpTBUOzQ!ES`2 zX!{J83AWP6Z{nH8qJbraq>~S^i(O#&K&5DzVYa#{VzskC=U|ihth4WNSqvzunMkL$ zedp@~txJ)$U@=&u^-@(aS{HpwZd2ixe4EU7WE@Yd7xQ}}*yMXIadc|=*c`*nGdAiy zQCKaMAvM5LG-pu@(=boiBJdm$P|vhwCC?qM@xrNzsHDq|ve!|W%yCr*nxsYFm!S-J zVNJ*b-wr#Pv87`hI~qP!*?-C~R4JL`z4Q-7Ix0cbv&%e3tL2E{yXqpvf)VHn_iR^$ zLmA&cEEcS@m8;^^C~h7V#5v;6s^sHludaOzvBX_B>qtT4|BS|e)isYyZj!e}K|3)o zJZUmhL{wgDyEpX;EH!ovEp_`C zZK>bT`ScaKj?w)yeP#HF&a0#cTqlGcw4xX7=p(A1zGko%;|-Ht<%gd772RVcT-&MW ztN#)(Ou8c^y^gt9XMk=-Uz$j#?I$84bIoODn$9Osv~u@Pa#lIv|AM}*8ztPNTUjb0 zd4f9taXR(+nA55MfJ-qwpLo#U_dV{bXMYKke_*c;et+)evdsx5*Nw*>K8k6ib k82g7r68N|b_X)Cew-fLtMYmf%Kf@Qq)9L*sICALuA1hY~asU7T diff --git a/Implementation/src/Controller/Historique.java b/Implementation/src/Controller/Historique.java deleted file mode 100644 index 270502a..0000000 --- a/Implementation/src/Controller/Historique.java +++ /dev/null @@ -1,63 +0,0 @@ -package src.Controller; - -import java.util.ArrayList; - -/** -*

-* Classe permettant de sauvegarder les échanges entre deux utilisateurs -*

-*/ -public class Historique { - private Utilisateur User1; - private Utilisateur User2; - // Liste conservant les differents échanges - private ArrayList HistoriqueHorodate ; - - /** - *

- * Constructeur : un historique sauvegarde les echanges entre - * User1 et User2 - * @param User1 - un utilisateur - * @param User2 - un second utilisateur - *

- */ - public Historique(Utilisateur User1, Utilisateur User2) { - this.User1 = User1; - this.User2 = User2; - this.HistoriqueHorodate = new ArrayList(); - } - - /** - *

- * On ajoute un message échangé dans la liste 'HistoriqueHorodate' - * - * @param mh - le message horodate échangé - *

- */ - public void addMessage(MessageHorodate mh) { - this.HistoriqueHorodate.add(mh); - } - - /** - *

- * getter pour recuperer le second utilisateur - *

- */ - public Utilisateur getUser2() { - return User2; - } - - public void afficher10derniers() { - System.out.println("Demarrage de l'affichage partiel de l'historique"); - System.out.println("Il y a actuellement " + HistoriqueHorodate.size() +" elements dans l'historique"); - int n =10; - if(HistoriqueHorodate.size()<=10) { - n = HistoriqueHorodate.size(); - } - for(int i = 0; i^Avn-=1K9Fd1BpP867ekDX6%!F@cBfOPCNIj25?FoIaUFF`puW9h+(2AlL&>P9oLs8U_wD&X zCr}9(sBb_cOap67tVNT+j=;~P`aM_qUM?s7l(sv|Q%+zjS@Z*egq=~&)Y(Aln@xi? z{H7CFk7ffKOl-s^fqRzutnw$&FfG+cAd6W~U}Jkn=&zK_sPY|mn$8;0Vqyzg1)Aoh z?@T$;KkGUfM@fM_?RTH3c5>YFa?*C`Wh=HBxYxvX>=0OA;ViNcFegLXaXVL}XHs`w zGqlr08}8%1oy{`g>UbgD>CkSsiTklfAWmGqtvp{~b2*<9?*q|(x)B{n8t62!S7T|e zP*^q*FlOvvSYA=ucAtq9x&>k`HaIcH&A#7L?<;aXcch zbJ(+jVrIrFQY+SFN6lDj#tE!}5sOr6{|WTsxK?rhGGe3BcZ}<@oiK3{kCBo&U6@l- zn%DESYrGx_|m`=W)Tn(8i2eNbhw;if^ymBYpSr1Zz^$sBjqj4C@bJ7gEi z_lpxQ+Bs~6LbbMJaQqwC4o@0BlIZ5G~pje_Wlzl|%XRX4EVC8F|vtENs%Qs@r6ro*--w&RZ2I-!2SEHREN2rqy^m zfp_q(f%kOn-xt_bna++o=grDgShr9PCn+V*pBMPDn#jm7bo#jMW^*#wHRyS>#X|aS z>{UBU4vx(iWDWBRRrckfU$qsv=(lsZQBHsM^oMMEArfSEz;&hHpRu4D5EUilj5Z@{}cC^T@*uLNF;-04O=SHQaDb%^8*80W5| z;RhtXEuEd?buBG)cgEz^-2yf*;GU~6liwr34QoPssYAuf z2723w7QVVK^9duj(9splNA9L+9OHv7?O*}BhW7r1c7dz7my0fe->`nTi-G8S|5dE& z`sUi5zr;6-F*Y+Vz~T#{jW6E&(2m{cQu#IgX!v9G zKjP7$2+MF+M8JM7LIRG&T4RLrc!}v2ZPyxGz>^cP(y;{$Ph7k6`(8f%3XR|4bo0al z&Q;2gWFhqz<0>4XM2-??FAm}uR}Z6)e~;ogoSy+~J2#UWcm-w~;&eZZZG6+V<21iy z&hYzWlt9M`a)NLFr_cuT*tQTXKO&;guScPKb-`v> zu;z<{%TcsdP|%7vaWf4pH@K>R$K5 sTGZXf1_KYUu(z;>J@7hr>+lBN actifUsers ; - - public ListUtilisateurs() { - this.actifUsers = new ArrayList() ; - } - /** - * Ajouter des utilisateurs actifs dans l'attribut liste 'actifUsers' - * - * @param u on va rajouter cet utilisateur dans la liste - */ - public void addList(Utilisateur u) { - if((verifierUnicite(u.getPseudo()))) { - this.actifUsers.add(u); - } - - - } - - /** - * Recuperer un utilisateur à partir de son pseudo - * - * @param pseudo Pseudo de l'utilisateur que l'on souhaite retrouver - */ - public Utilisateur getPseudoList(String pseudo) { - for(Utilisateur elem: this.actifUsers) - { - if (elem.getPseudo().equals(pseudo) ) { - return elem ; - } - } - return null ; - } - - public Utilisateur getIPList(InetAddress ip) throws Exception { - for(Utilisateur elem: this.actifUsers) - { - if (elem.getIp().equals(ip) ) { - return elem ; - } - } - throw new Exception("No such user with this IP address") ; - } - - /** - * Supprimer de la liste des utilisateurs actifs 'actifUsers' un certain utilisateur - * - * @param u on va supprimer cet utilisateur dans la liste - */ - public void supprimerList(Utilisateur u) { - Boolean Sup = false ; - for(Utilisateur elem: this.actifUsers) - { - if (elem.equals(u) ) { - this.actifUsers.remove(elem); - Sup = true ; - this.afficherListeUtilisateurs(); - } - } - if (!Sup) { - System.out.println("Tentative de retirer un objet non contenu dans la liste"); - } - } - - /** - * Modifie le nom d'un utilisateur dans la liste des utilisateurs actifs 'actifUsers' - * - * @param ancien correspond au pseudo remplacer - * @param nouveau correspond au nouveau pseudo - */ - public void modifierList(String ancien , String nouveau) { - for(Utilisateur elem: this.actifUsers) - { - if (ancien.equals( elem.getPseudo() ) ) { - this.actifUsers.remove(elem); - elem.setPseudo(nouveau);; - this.addList(elem); - - } - } - this.afficherListeUtilisateurs(); - } - - public Boolean appartient(Utilisateur u) { - return this.actifUsers.contains(u); - } - - - - /** - * Verifie qu'aucun autre utilisateur ne possède le même pseudo - * - * @param u on va supprimer cet utilisateur dans la liste - */ - public Boolean verifierUnicite(String pseudo) { - for(Utilisateur elem: this.actifUsers) - { - if (pseudo.equals( elem.getPseudo() ) ) { - return false ; - } - } - return true; - } - - /** - * Méthode affichant la liste des utilisateurs actifs - * - */ - public String afficherListeUtilisateurs() { - System.out.println ("Liste des utilisateurs actifs : "); - String Utilisateur = "" ; - for(Utilisateur elem: this.actifUsers) - { - System.out.println (elem.toString()); - Utilisateur += (elem + "\n"); - } - return Utilisateur; - } -} diff --git a/Implementation/src/Controller/MessageHorodate.class b/Implementation/src/Controller/MessageHorodate.class deleted file mode 100644 index 23acfdb4711cfb2e21f84101033bae3bff8a9cc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3377 zcma)8TUQfT6#fnbCXAzKfKo(3EFvUo6ouMgTNO*e61;#Hw6+e(h>?& z?Zwu%+IxNJOCQ>`6uNLNe?TAlgZfbWotcq@B(R!?Gv}P_{q6fc`>%iJ9szg`_f(Xj zTtPrX1u6wrp3|rGXj;#VM-PmhGZKzK<*rmF<-8zJ-rjLkMG#dAR1M3Z2{hSOBHC+a z9Lr3n4J#TqY+D~U`c2DB>W(2$Z5z%$!*)^`-O*DPZ<^Z&3z&{LsdUOF`IOb;Nm!ww zTEbV6d)S<^5{8t!N<#=W0xEBPK>~H{gE^Il9V?X?Cy0VNffeo_Q$&yMBf5%OluMka zH8fzgz$&R5|M0b?-U2l~+&mY-s>riO!&)>61e}Xml8J#J)(Jqut=I4jT50Ndp{Y&n z9ZT67Vg%YWY(%?2{iHr&(2)tP$^+K{2`Gp$M834+;MbCJJjJRVIZ*Y)?u zCMRRIt)d6JW#-pN_`Mo>v5$En16hz4p(lpr5<^8FURKbrVF3GSdQN^$GOOo|tAapl zab^`89>gG%OI0z10}2jmIE2Fsit>r0E9`7K#o{a#vyPLcfJX$%Vlfp*aZJH+4Wl?g zr!8KJ^qB3I(}o`sC=JI18;~3+HB@oQ&mTmC3NIkRK z#+bT(%%v4WNNO-}Ms@>7w;Wqm%_7_ijBrZE`kcVfl09gt>MHi^fY%_>8YYop zyluB%39MNPMz)l!hBqXKmdxvq@(){sgDC-JzR87(#Y)2S8ZO`>8=Wk|{4TcAqtE3k z8&|KHl>K-xl`)2cGJsUTi zvu4t+uEY%$H}Q#rPh}_ijP;ny!&GM4oG_wZZFx<&Pfs|eMc>}Zx7R21K>PJfGHuwc zgQht#mF+1GQQpl0Mrlq7@_cuAZ*Nb2AM_!5^>lhTH}ncJvkCx@5q)Nlu)=pt!1srVH8lB1-OI@LTx z&uHlRS-j{<-7|xia)6%NyE(n=q3Lhq9gkV4sN@;A9S*%RgZN;iyfZY+O`!8n9EnE) zd8eUBMecO6J1{RUR^humRvBuJDN1*+E*N=q58EPj!OoCAgT!5gxOa~p_;79k`1SGM4-p*Qw7Eg43(VqdEZ7i~+LyV3i_r-{oZ%Zn9S(5#I!Ff`!t*%H7x_5$ z^JyEw37p1Bm^j5Sj^YYWw~)ZQwY=g`*YXeNOd-c5 z->GZ)Ac1T73ihmRhGZR<>=+J -* Classe representant les messages envoyés en TCP lors d'une session de clavardage -*

-*/ -public class MessageHorodate implements Serializable { - private Utilisateur destinataire ; - private Utilisateur source ; - private Date dateHorodatage ; - private int type; // 0 = debut de la communication, 1= message de communication, 2 = fin de la communicataion - private String Message; - - /** - *

- * Constructeur , le message va etre horodate - * @param destinataire - Destinataire du message - * @param source - Source du message - * @param Message - Message envoye - *

- */ - public MessageHorodate(Utilisateur destinataire, Utilisateur source, String Message, int type) { - this.setDestinataire(destinataire) ; - this.setSource(source) ; - this.setMessage(Message) ; - this.setDateHorodatage(new Date()); - this.type = type; - } - - public void setDate(Date d) { - this.setDateHorodatage(d); - } - - /** - *

- * permet de creer une representation string du message - * @return Les differents attributs de la classe sous forme de string - *

- */ - @Override - public String toString() { - String Msg = ""; - Msg += ("Destinataire::" + this.getDestinataire() + "\n") ; - Msg += ("Source::" + this.getSource()+ "\n") ; - Msg += ("Type::"+ this.type+ "\n"); - Msg += ("Date::" + this.dateToString() + "\n") ; - Msg += ("Message::" + this.getMessage() + "\n" ); - return Msg ; - } - - /** - *

- * permet de creer une representation string de la date d'horodatage - * @return La date d'horodatage du message en format yyyy/MM/dd HH:mm:ss - *

- */ - public String dateToString() { - DateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); - return format.format(this.getDateHorodatage()); - } - - - /** - *

- * Permet de re creer un message horodate a partir d'un string - * @return un messageHorodate - *

- */ - public static MessageHorodate stringToMessageHorodate(String s) { - - String mots[] = s.split("\n"); - Utilisateur destinataire = Utilisateur.stringToUtilisateur(mots[0].split("::")[1]); - Utilisateur source = Utilisateur.stringToUtilisateur(mots[1].split("::")[1]); - int type = Integer.parseInt(mots[2].split("::")[1]); - DateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); - Date date = new Date(); - /*try { - date = format.parse(mots[3].split("::")[1]); - } catch (Exception e) { - e.printStackTrace(); - }*/ - String payload = ""; - for(int i=4; i< mots.length; i++) { - if(mots[i].startsWith("Message::")) { - mots[i]=mots[i].split("::")[1]; - } - payload += mots[i]+"\n"; - } - - MessageHorodate mh = new MessageHorodate(destinataire, source, payload, type); - //mh.setDate(date); - - return mh ; - } - - public Utilisateur getSource() { - return source; - } - - public void setSource(Utilisateur source) { - this.source = source; - } - - public Utilisateur getDestinataire() { - return destinataire; - } - - public void setDestinataire(Utilisateur destinataire) { - this.destinataire = destinataire; - } - - public String getMessage() { - return Message; - } - - public void setMessage(String message) { - Message = message; - } - - public int getType() { - return type; - } - - public void setType(int Type) { - this.type = type; - } - - public Date getDateHorodatage() { - return dateHorodatage; - } - - public void setDateHorodatage(Date dateHorodatage) { - this.dateHorodatage = dateHorodatage; - } - -} diff --git a/Implementation/src/Controller/Modification_Pseudo.java b/Implementation/src/Controller/Modification_Pseudo.java deleted file mode 100644 index e34b110..0000000 --- a/Implementation/src/Controller/Modification_Pseudo.java +++ /dev/null @@ -1,51 +0,0 @@ -package src.Controller; - -import java.awt.BorderLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.io.IOException; - -import javax.swing.ImageIcon; -import javax.swing.JButton; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JTextField; -import javax.swing.SwingConstants; - -public class Modification_Pseudo extends JPanel{ - ChatApp app; - public Modification_Pseudo(String name, ChatApp app) { - this.app = app ; - JLabel Text = new JLabel("Entrez un nouveau nom d'utilisateur!", SwingConstants.CENTER); - JTextField pseudofield = new JTextField(2); // Zone d'insertion de texte - JButton home = new JButton(new ImageIcon("/Users/auriane/Desktop/ChatApp-AL-NM/Implementation/src/images/Home.png")); - //Ajout d'un bouton Valider - JButton Valider = new JButton("Valider"); - this.getRootPane().setDefaultButton(Valider); - //Listen to events from the Valider button. - Valider.addActionListener(new ActionListener(){ - public void actionPerformed(ActionEvent event) { - String nouveau = pseudofield.getText(); - try { - Boolean resultat = app.modifierPseudo(nouveau); - if(resultat) { - - } - else { - //JOptionPane.showMessageDialog(this, "Echec de modification de pseudo, " + nouveau +" deja pris", JOptionPane.WARNING_MESSAGE); - - } - } catch (IOException e) { - e.printStackTrace(); - } - } - }); - this.add(home); - this.add(Text); - this.add(BorderLayout.CENTER,pseudofield); - this.add(BorderLayout.SOUTH,Valider); - -} -} diff --git a/Implementation/src/Controller/Utilisateur.class b/Implementation/src/Controller/Utilisateur.class deleted file mode 100644 index c8573fc26daac9b3221d3ebad040059ee24fbfda..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2623 zcmaJ?>sAw26#fn*nGi>TC~Ck9QWX+}DD{Ftv4UD+16V<=*o#AQ#E~!)XC|nvz4syd z2K{T-s?kN)>I3u<`Y>(3Gc%C^qifANb1wUQd+%>w&fouT`~~1Veo3JX?HXb_;z$T| zJu=pfeATd4^7G4&WZ4r)Tre%un-pjt%HB>Pi4F}Z9Xp^4^tw(tKW$r{V^^!v$=~wK zs_7b@tUCf7uJmrWvR<(TdWK4y$P1ohS}PL)+AbZP=n~MBwCzyg-l%NR^5lwiDBMBS zX&t+DLkO#APy;o6@heXnSLEdluV-LJFBjJpyMcx3B+o?N4p~zn+_#0D1bDhkkygH zu)w}GV^xyOvfU;#}brdkc*sUAYx}1NYVpohZx#{dh0nx88FX{LQ zmj&W(t!gsbgDrf^-fQj3w2mvdN}Fqj<4S_RBe9A}d`x|Lw%M z(iy1SmMF}oBxY4{%n3}kxE3+A>1=DD>}?G<1P;DQ$6MB_Wk0c05?*~;mNn0`trX^Q zQ^$fT#m*Y5#9Q!;^6H{vl%=xdmX6yhka0RwtSCA^({UF|Og{OzZd92oTPiK6;fd^0 z3ZLT(4PUB&eYGVKrfj<^4NHY?DH^(PpV5s?+ZEPGXUVkWTzzd>I*Z0~l{<>kW`S#J z?k9WCmRf3(657nN-QPUlPPM>p*Y6CA_Le?!vIXtg(z`nkP2TC#Hfz*;OEs(#yG2e3 zoEmx`P-{L?3wGTp%WJ0MpethPsERGONS#MdjM}X99@-VRGl9n`IB+$1s@CfQM>i|c zwASranGZ@UDF16l*|VKz0>4IG4+R6z8N;enrF*nw+pG23L?jIZpy9r6Ec@BF9O z{8-~0?{hUnxfuTka<3qA!wqP;6AkRljl4v6Zlr;pm+1SQ=K==DUL-i~9*%rcIo{{V01Z%vCvw9tad=aedac2C zE$)MsQ3>Uv&;#3{)ghnQR?q|6p^p%HfRYjqT0nPihdxFjHl!A!ecMHcD8xr76nzjn zSV$i)4J$r2Fa-G1fd)=&;8eKkZeVN!ABL;G22O9_oLX(-2mFtq9i!wvj|0?`BfvPu z7>^Y^40Zm)I3-En5_Pt}#`tXd_+0vUA(l&DXkfAs&%|S6rA%BKdyOe|oQZd7V{;r+ zV}+O~B>qJ5?(m6`^fgMyC^Yj5r9$F2qzYO_Yv9vN;srIG!z^yFjko!^F-hiuv$X9T zb&oT|=ebkBK1|Tg3mC*jzN3>kjZ2ic%)3{3dkQx(jXSssled`+|8Y~(aK`^env+Kw zF@=VCl|pw>4gDMpx$Vp~u*l?HY~apo+}k89$hhk?YK`!1uwe7w%LJ|wV%;B~`s3IB R_#EHyT$RZ8_z^!N^FPSJRSWZBrXn7(F+kEQCc~0xejnTPlzjXiBwM8l+;RN((7=ks5rPWpl-C!|u*z!^l7I zpZK|sgqbqq5Adsh$5GGSESf}ccINKgz4tliJg>j~`TAD?%lI~h1dvU=dSDl}126P!uO{n-XARet!Mg1=Lb+4g78q2P(v$=<+)uX^&QM;nAI_dOh*FEV+Qw-4lv&T#Mbc`6UPlnA+1Ad z&IydRQerSChGmD&k(4RSV?o1h9R=Ju&v>V;faWWtn%fn{SiLHiyF7}r;mWXJ%HT)_ zrf0vDOu-`FQz^J7(39E7?)Kq*fw9)1QJs@fkr;L$WgnIWrq;qxx}h}Uuo_iq*frK_ zP_+)Ib`eD#EBJurYT35*>2NxeZ3Qsmj#ybA4_O~wWf?=3+Td2Pro??DFdyfo4dk-o z%kHWs_*lm}9;r&LR=Wbz>ZoFNPZhg)$A-zE!BR|_UL&yOBS(oH>l!(?l}BvG0Zu)E9VEGOu5c74RI^8KjxPS) zjrPyc!~GSQT)*I-4Spy1zL`6P$elr}oTC2(sa*a9!~7nr@ZjnRCSUQAK!xj7ngb&= z947E6GoOaRRZzxW3_C|53U(m(3noXW@=d(`FMyiRzywm5upZhDA>!p1@b=ja`@_p5TrC97PN_vEA+U64?E`@-;6d@Xg ListeSessions = new ArrayList(); public RunnerEcouteTCP(ChatApp app) { this.app = app ; this.pcs = new PropertyChangeSupport(this); + this.start(); } diff --git a/Implementation/src/Protocoles/RunnerEcouteUDP.class b/Implementation/src/Protocoles/RunnerEcouteUDP.class deleted file mode 100644 index 9644cabcd1e0aecdaab98895ad219d7c291ea513..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 448 zcmZ`$+e*Vg5IvK$O&imTwQ8#%2tKqC%(Ezh)cRDkc54!Zancho-KtWTsV;2p#mN zVRoLTCoXEJJ7{=VN0ZQ5v15xtH05Rlp(2*9yWRf`dt(PJLUTEWX(^l}>`>^d2M+aN zEX7qmp9p>T`(W!_65Lyr>quP2rna>*$&oR{K2L9fu)!B*1B`|j(PZ3Y<}TyEZ%IL)b>?Pj|r4c$WPaIPa(~Rpx_$D(mW8(dOJj=Lh*`Ty+2d diff --git a/Implementation/src/Protocoles/RunnerTCPEcoute.class b/Implementation/src/Protocoles/RunnerTCPEcoute.class deleted file mode 100644 index 72aef14068e67791d5241ec157a0f338696f03fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4324 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 MO#a7oF2V8t0H&7wzW@LL diff --git a/Implementation/src/Protocoles/RunnerUDP.class b/Implementation/src/Protocoles/RunnerUDP.class deleted file mode 100644 index 8708f026ea84279cd05262b1e962f963a264d57b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4024 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 diff --git a/Implementation/src/Protocoles/SessionClavardage.class b/Implementation/src/Protocoles/SessionClavardage.class deleted file mode 100644 index b86f313138aec4e657a7b338e7fb716f13d9a4d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4583 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 diff --git a/Implementation/src/Protocoles/SessionClavardage.java b/Implementation/src/Protocoles/SessionClavardage.java index d3e3754..a39e98a 100644 --- a/Implementation/src/Protocoles/SessionClavardage.java +++ b/Implementation/src/Protocoles/SessionClavardage.java @@ -11,8 +11,8 @@ import java.net.Socket; import java.util.ArrayList; import src.Controller.ChatApp; -import src.Controller.MessageHorodate; -import src.Controller.Utilisateur; +import src.Model.MessageHorodate; +import src.Model.Utilisateur; public class SessionClavardage extends Thread { private Socket link; @@ -47,7 +47,7 @@ public class SessionClavardage extends Thread { this.setIn(new ObjectInputStream(s.getInputStream())); this.setLink(s); } catch (IOException e) { - // TODO Auto-generated catch block + e.printStackTrace(); } this.derniersMsg = new ArrayList(); diff --git a/Implementation/src/Protocoles/TCPEchange.class b/Implementation/src/Protocoles/TCPEchange.class deleted file mode 100644 index e419fcfbe05565c0e7172b40ebeb0b5b65dcdd7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2323 zcma)7>sAw27~O~4Knz7xykAC2PsfJUu4Opak7nTco4AhvygzKOr} z2efsqK0sfgFVMezfY$CaNepJ;YJoLpIG6qHZ=d~r^ZP%){s!O*eoUYZ?G`$c=tP&m z?p0^qNtGSHl)AmVDqStmbrnjcB9|Io+S2S zpTOQ7@C2-?K`;9ZI8uukQ)f8OFQrG9EbJHPi;wzJr*eV2CUpV_amd2qB#z*yz~NB2 zsp-JiDkztwN-b)y?1he&krL=ENu8+*92^;~;TxC?A5+DmBJFen12}HPJ3*v6ht@rr z(WP#jWahQ_CeNbWSpru{Y2nikl+CYDyrPBA1dbc73o6io8K^2@GP)92^%ouw6+Lz*#QKSj$O)V;?2puLoWN z6G$1DGXk0aAHS8?wi`%4sF6FD#ChY-&QLpwH#mrkNnA2B9jk%oTlk#fG`*YgwNxsq zYFV7waAj4~UfsAVFu3U3I@Z$;hh?a38c}L#FRLhg9?6RIbvLdF?9Wrr`j)B_hIFRl zsutzl&5#R0P!<>+$MN#0vEH5jEp?I1nv2ew4EwDja`;D#|kg5Vc=R1p?<54_87bGz2Ot^P)?#^ ztkD-Y%A9uGwY+j%9-?bwzijI!aUWS>@0XN&Iw*4J%X+??k1EUTGNuo3rXE(+H5Rx$ z(rVF0V`-gVY_?W56oKBD(414PV<+Bo4=ucCWW|q2=Jxv)7GCYz$yVUVM`IiOL@tPw zD`&l!cr(4z=0;eSDrG ztzjI%2u@%OXE2VN?98_?$=xa3;mi`-X#r>P5a;0H0@iR5>qOB!eH3l)xY%johJ}L` z1}qHn55mIb9z@*H!MN)bVgoPvW`x+HejOa|ifn)TpFblTr+zn1Jzt2`Sjw6V3iV7L za%3Xk%}*FzCXFt?z-hxhv#G?zSMUCqrx0r<$9`n_>(z6-gkDCv$N%n=LxHOg$@vk# teUF*t6K3@kQ*e-B8D~*s&XPHo;@tYs_BVzsRxL?cN^4S@nyJJ}tQC7Ydfc9x^9 zR_j@BEw)1IRgc)(R>U?5iK6zd+RL`K_Of@i_uWdt_j$>$VN0NBRWu&8Rtpr=)o(08 zF-jB!RFpy$s7adPP_JoNM%aky$x#2=-uCbick2ShZALs!4jj(z%Cc=WNU6nJB&S&_ z$|W1MH>sy0#zrj`jpzYXqDsMR6?0I{BkZkl-3s;S)=tA5?u=WyxlId`@0>y1nmL=~ zmb!Z9z?2n@h1%n(5#7|Rs1a`|#azr&P^02R%onJ(dC#O0C?C?2-G-^R$Mg|BZjmK* z-y%0JRB;j(36#e5U6#8{InoDu4A&y{Sghh?sYC?@?W7KCA`w$hCiSF(CES)#&9fFj zElyFfOv+akO?E}&!(B#Li@96na=nTMxm?L*!$=Hh;bC`G!Sb|L(qfYBipw6r{Q!3XQ((6D{>Ifw>xR+BUIi<5eLS%nhrHY_yR?&i00&_>SVVxKWYu2WyHN;WU(rja&Qs=>oyVLck zZD4mQfYmrx!8=r}L2FvKT=4{ygcLRwr~LW2ZVV8HYgM$PgSd%Blh&G8tkpEMNLb@I z?Jl|^?P41(T_hx!&PS($3skH_m%ywnnB+18AWEQWmSGBbBHV_jluB1(&FJ542p*+wP(Y^l0mDOJ@Z5>*}|*DhTI0vzG{zXAVG@d1RZw z!n&=kosJjNKy;1S(kTz_$B>FBwv%sCk4FR+xZaV}X;mDyEe?H5#fZ#Mh2fZyWRj?b zp&}t+S8N#$BB~(JTnq}kq#^s~A~LAQcNn|%?0iENQ(v>R!44HWv5ThOp~X`AdWv6N z*O>=!RVa}B-zQK)v|4&R)f_CwWx2E@1TSZ84N;~MFWYo+gKbOqN7 z%*)`#!AT|y1aKX0P;sL)ak(8ceHOjC!DON>#?9Q>9%dTQgUOT`jOoFIVOq_>)6Y0_ zg>?I^@}S#TE2P^Uf8C+t!_vQssfYFG4qd^Wo*3<1?>Tu7ZYaiG0%d7eaZ75kf_*%7 zMuE97#hPNW%mlC(AD5@zEwJMF*y)n{rL#;U7Sqj8+mL3hNhFA=QrwIC6x^@k6L^3w zd`ow@Mx}zu)WArT!F{GTn@Fj&ftcRntvepybfm15skbP2C~X4UduvQn+bwfN01wJ& zt;8cLJ}EOnAe-6c^rI?1EvNm_WPd_Vd{)I{GGkTSb;YfRnQSE!)8i@*;0Yun z=cFKKHpIA*NxTYvd|t&E#u;B)A`#myuqcOqTPhxw#Uj+<4w$YDURjlHC)bq%2tS{RXl@dsXsFjZ6C}pTCb@`qO2ymE!!7Wd;dz$bEL5BxiNQL{)Gtj%O})p6_oQMB)SMdT zkfqV#Z4#p;3HGAh#!n3>xH_%VK>;HNU7{w!@N zTVJ>BlcjKrtBrTQh0bj=BJ3N=+41N-sgVKQ+#q9$y%rCru5K?`oj!ZU_EHwOEY%6F z@;OBHESTkF=Iu5)!;QH!Qrk8sA$JnGWp*a)))KBfv)Wlnq8@VuGP#UMDADaa$rL4H z?)dpf!Jlc2{OL)-Uj=+y+0>}AYDN3w#I;0zqpQ|TyXWbbsB1}IbTF>T)FaT4Hk%!Q z5>%`5m*>@V#mO;kWFVp~iIFUCKeXhuYzA~>$<0A&sLzy>#d=jZ=H4d)eMZU*>m5<) z^a> zee4cfiiJ<$#FSk;f|d~^@PckD5bW#?ielksFO`8>kiC)>+{tb^s5z~vBw@u4tYu;h zb|#wTdof{SzdJQrloyFWK$Hqq5oM~FCCcewJB4}e)@6H~M$ve+a;#Q5;(dGJ|8K*$ zG;q$M<2JATbCzxAc(cq*yI0_OTBVB3zu-OdU-)+g|HTP2E(vJ|ZXxYF76DPCiW4Q3 z5_i&kg;*eOoB0E&eoKWo={OuWmY0Yi%d}XmijyVB0{XK;@J@JKZj5KOQ#L^z%q<0u}2T4uUS)i&hTk z@Mloj)i{P=_i}fB83*=!ZBNq}mhQuBKI-;CZF&}sdr{c5e{}k#(dnsC%wBf@p@uP> zHHmY;e(UXGzpYt2*7F|SfiC;$vklpb3JTCcG0sC7JGxou9(9Kxz`Z)2~(Ub*OlP zB(8ctpQF#Kj4oJFoe&J0AN6LRTjKDfy=w4 zEoiTCT-`N_Vu^qcRr>K{agUVuCdw=A($sWl9Je(48>KaFA4Q;xxAUJ#3}-GkE^qTjLZ0TIVr9n%~hnj67zVoT!5?j z$>|z?AiAErZs5L~x${PTBDskuxs`aijmWs&)^{Zer@4`z|Nf+)U*Uy_x?kr%f-(hv znI_x9%nBzI-t)M=r-*0%4S(n9GPEBhWD5BlbRp5r$he63uvKob?GkDBFPCZ$E_Z;C z_B?$`Kx8~m+WfvJ$Bgf@k$Z-nlI~`*x`*L$FJXQkzX{xrWxUUY@BqIJJ;+dah(Yi$ zF2*P!@rcKz#qx^}uk%ucXZS4Ob6^S&64ei{W6XCoy0P8EffMuH6n}Kz^lN;4Y9ES5 zr(fadGY7F>U=p7LuR{|)j`&^mAim&3!{!NmWz!^Hkni92VRZVj2AQH9*gDehr}PJ? z#}lX~heb>XO&I6rxJgPs#gKoJ8a%}h6o&}kr)`(bLBUa|3eIO3A3-hS`7pIjL-jiR z!#?4k6#-e)++3DT)MNPG%q%%Y5&mN*ZE1=|ZjpcG{t5hu8Q6IolP~8pOPorZ{gNI}-ySU#i$twh%H09(JVn%r2GqO> D@kki3 diff --git a/Implementation/src/Protocoles/UDPEchange.java b/Implementation/src/Protocoles/UDPEchange.java index 9fbb3ac..a21a95d 100644 --- a/Implementation/src/Protocoles/UDPEchange.java +++ b/Implementation/src/Protocoles/UDPEchange.java @@ -16,6 +16,7 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import src.Controller.*; +import src.Model.*; /** *

* Classe representant les echanges UDP entre utilisateurs. diff --git a/Implementation/src/View/ViewSession.java b/Implementation/src/View/ViewSession.java index 1a7077b..1110cd0 100644 --- a/Implementation/src/View/ViewSession.java +++ b/Implementation/src/View/ViewSession.java @@ -21,6 +21,8 @@ import javax.swing.JTextArea; import javax.swing.SwingConstants; import src.Controller.*; +import src.Model.MessageHorodate; +import src.Model.Utilisateur; import src.Protocoles.SessionClavardage; import java.awt.GridBagLayout; diff --git a/Implementation/src/View/View_Accueil.java b/Implementation/src/View/View_Accueil.java index 92b24f1..f795819 100644 --- a/Implementation/src/View/View_Accueil.java +++ b/Implementation/src/View/View_Accueil.java @@ -94,9 +94,9 @@ public class View_Accueil implements ActionListener{ ExecutorService execUDP = Executors.newFixedThreadPool(1000); System.out.println("Lancement de UDP"); execUDP.submit(new RunnerEcouteUDP(app)); - ExecutorService execTCP = Executors.newFixedThreadPool(1000); + /*ExecutorService execTCP = Executors.newFixedThreadPool(1000); System.out.println("On lance l'écoute TCP de chatapp"); - execTCP.submit(new RunnerEcouteTCP(app)); + execTCP.submit(new RunnerEcouteTCP(app));*/ Boolean connexion = false ; try { // on tente une connexion avec ce pseudo diff --git a/Implementation/src/View/View_Clavardage.java b/Implementation/src/View/View_Clavardage.java index a5d73ca..4adfbf6 100644 --- a/Implementation/src/View/View_Clavardage.java +++ b/Implementation/src/View/View_Clavardage.java @@ -19,6 +19,7 @@ import javax.swing.JTextArea; import javax.swing.SwingConstants; import src.Controller.*; +import src.Model.Utilisateur; import java.awt.GridBagLayout; import java.awt.Font; diff --git a/Implementation/src/View/View_Menu.java b/Implementation/src/View/View_Menu.java index 800e858..6576c7f 100644 --- a/Implementation/src/View/View_Menu.java +++ b/Implementation/src/View/View_Menu.java @@ -37,6 +37,7 @@ import javax.swing.JTextField; import javax.swing.SwingConstants; import src.Controller.*; +import src.Model.Utilisateur; import src.Protocoles.RunnerEcouteTCP; import src.Protocoles.SessionClavardage; @@ -56,7 +57,7 @@ public class View_Menu implements PropertyChangeListener{ JLabel jlabel; JLabel Txt; WindowAdapter wa ; - + private RunnerEcouteTCP ecouteTCP; /* * Constructeur d'une fenetre de menu apres la connexion d'un utilisateur. * @param app Un objet de type ChatApp pour posseder toutes les informations de l'utilisateur @@ -96,10 +97,11 @@ public class View_Menu implements PropertyChangeListener{ // Afficher la fenetre frame.pack(); frame.setVisible(true); - RunnerEcouteTCP.addPropertyChangeListener(this); + ecouteTCP.start(); + this.ecouteTCP.addPropertyChangeListener(this); //TODO Problem } - + /** * Methode static creant un pop-up demandant a l'utilisateur si il souhaite vraiment quitter. @@ -264,7 +266,9 @@ public class View_Menu implements PropertyChangeListener{ public void propertyChange(PropertyChangeEvent pce) { switch(pce.getPropertyName()) { case "NouvelleSession": - + SessionClavardage session = this.ecouteTCP.getSessionClavardage(); + session.addPropertyChangeListener(this); + break; } }