diff --git a/chatGitElise/.classpath b/chatGitElise/.classpath index 61d0f7c..eb61c43 100644 --- a/chatGitElise/.classpath +++ b/chatGitElise/.classpath @@ -16,7 +16,7 @@ - + diff --git a/chatGitElise/b1.jpg b/chatGitElise/b1.jpg new file mode 100644 index 0000000..32e3843 Binary files /dev/null and b/chatGitElise/b1.jpg differ diff --git a/chatGitElise/bin/controller/Agent.class b/chatGitElise/bin/controller/Agent.class index c3f620a..e9d7a0d 100644 Binary files a/chatGitElise/bin/controller/Agent.class and b/chatGitElise/bin/controller/Agent.class differ diff --git a/chatGitElise/bin/gui/FenetreChat$1.class b/chatGitElise/bin/gui/FenetreChat$1.class index aa4ff54..a4a8b67 100644 Binary files a/chatGitElise/bin/gui/FenetreChat$1.class and b/chatGitElise/bin/gui/FenetreChat$1.class differ diff --git a/chatGitElise/bin/gui/FenetreChat$2.class b/chatGitElise/bin/gui/FenetreChat$2.class index 2762bfa..a6540b5 100644 Binary files a/chatGitElise/bin/gui/FenetreChat$2.class and b/chatGitElise/bin/gui/FenetreChat$2.class differ diff --git a/chatGitElise/bin/gui/FenetreChat$3.class b/chatGitElise/bin/gui/FenetreChat$3.class new file mode 100644 index 0000000..3701abf Binary files /dev/null and b/chatGitElise/bin/gui/FenetreChat$3.class differ diff --git a/chatGitElise/bin/gui/FenetreChat.class b/chatGitElise/bin/gui/FenetreChat.class index c04328b..69c358c 100644 Binary files a/chatGitElise/bin/gui/FenetreChat.class and b/chatGitElise/bin/gui/FenetreChat.class differ diff --git a/chatGitElise/bin/gui/FenetreInscription$1.class b/chatGitElise/bin/gui/FenetreInscription$1.class index a245ddc..a700a6d 100644 Binary files a/chatGitElise/bin/gui/FenetreInscription$1.class and b/chatGitElise/bin/gui/FenetreInscription$1.class differ diff --git a/chatGitElise/bin/gui/FenetreInscription$2.class b/chatGitElise/bin/gui/FenetreInscription$2.class index a0b1195..ab02281 100644 Binary files a/chatGitElise/bin/gui/FenetreInscription$2.class and b/chatGitElise/bin/gui/FenetreInscription$2.class differ diff --git a/chatGitElise/bin/gui/FenetreInscription$3.class b/chatGitElise/bin/gui/FenetreInscription$3.class new file mode 100644 index 0000000..f179fda Binary files /dev/null and b/chatGitElise/bin/gui/FenetreInscription$3.class differ diff --git a/chatGitElise/bin/gui/FenetreInscription$4.class b/chatGitElise/bin/gui/FenetreInscription$4.class new file mode 100644 index 0000000..49a9341 Binary files /dev/null and b/chatGitElise/bin/gui/FenetreInscription$4.class differ diff --git a/chatGitElise/bin/gui/FenetreInscription.class b/chatGitElise/bin/gui/FenetreInscription.class index f37a847..c14494b 100644 Binary files a/chatGitElise/bin/gui/FenetreInscription.class and b/chatGitElise/bin/gui/FenetreInscription.class differ diff --git a/chatGitElise/bin/gui/FenetreMenu$3.class b/chatGitElise/bin/gui/FenetreMenu$3.class index d194454..03265cf 100644 Binary files a/chatGitElise/bin/gui/FenetreMenu$3.class and b/chatGitElise/bin/gui/FenetreMenu$3.class differ diff --git a/chatGitElise/bin/gui/FenetreMenu$4.class b/chatGitElise/bin/gui/FenetreMenu$4.class index 7ae31ed..655af95 100644 Binary files a/chatGitElise/bin/gui/FenetreMenu$4.class and b/chatGitElise/bin/gui/FenetreMenu$4.class differ diff --git a/chatGitElise/bin/gui/FenetreMenu$5.class b/chatGitElise/bin/gui/FenetreMenu$5.class index 774a23a..963f4be 100644 Binary files a/chatGitElise/bin/gui/FenetreMenu$5.class and b/chatGitElise/bin/gui/FenetreMenu$5.class differ diff --git a/chatGitElise/bin/gui/FenetreMenu.class b/chatGitElise/bin/gui/FenetreMenu.class index f07998d..c88cc10 100644 Binary files a/chatGitElise/bin/gui/FenetreMenu.class and b/chatGitElise/bin/gui/FenetreMenu.class differ diff --git a/chatGitElise/src/controller/Agent.java b/chatGitElise/src/controller/Agent.java index 6323701..14f3e38 100644 --- a/chatGitElise/src/controller/Agent.java +++ b/chatGitElise/src/controller/Agent.java @@ -163,12 +163,10 @@ public class Agent implements PropertyChangeListener{ FenetreMenu.getCb().removeItem(messageDeconnexion.getPseudo()); } - - - //fermeture de la fenetre chat le user et la personne qui se deconnecte if(FenetreChat.isOuvert()&&FenetreChat.getDest().getPseudo().equals(messageDeconnexion.getPseudo())) { FenetreChat.fermer(); + //getTCPChat().getSocket().close(); } break; @@ -360,6 +358,10 @@ public class Agent implements PropertyChangeListener{ return listTCPDeg; } + public ArrayList getListeTCPChat2(){ + return listTCPOk; + } + public TCPChat getTCPChat() { return this.listTCPDeg.remove(0); } diff --git a/chatGitElise/src/gui/FenetreChat.java b/chatGitElise/src/gui/FenetreChat.java index fc6324e..d47a16f 100644 --- a/chatGitElise/src/gui/FenetreChat.java +++ b/chatGitElise/src/gui/FenetreChat.java @@ -2,6 +2,8 @@ package gui; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.KeyEvent; +import java.awt.event.KeyListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.beans.PropertyChangeEvent; @@ -17,6 +19,7 @@ import java.util.Date; import java.util.List; import javax.swing.*; +import javax.swing.border.Border; import javax.swing.text.BadLocationException; import javax.swing.text.DefaultCaret; import javax.swing.text.SimpleAttributeSet; @@ -24,6 +27,7 @@ import javax.swing.text.StyleConstants; import javax.swing.text.StyledDocument; import controller.Agent; +import controller.DataBase; import model.Contact; import model.MessageAffichage; import network.TCPChat; @@ -33,6 +37,18 @@ import java.awt.*; public class FenetreChat extends JFrame implements PropertyChangeListener{ + private static FenetreChat instance = null; + + public static FenetreChat getInstance(Agent agent, String userString) throws IOException { + synchronized (FenetreChat.class) { + FenetreChat fc = instance; + if(fc == null) { + fc = new FenetreChat(agent, userString); + } + return fc; + } + } + static JFrame frame; static Agent agent; static Contact dest; //destinataire du message @@ -41,6 +57,7 @@ public class FenetreChat extends JFrame implements PropertyChangeListener{ WindowAdapter wa; JPanel panel; static JTextArea text; + JButton envoyer; private TCPChat t=null; @@ -48,7 +65,7 @@ public class FenetreChat extends JFrame implements PropertyChangeListener{ private static boolean ouvert=false; - public FenetreChat(Agent agent, String userString) throws IOException { + private FenetreChat(Agent agent, String userString) throws IOException { FenetreChat.ouvert=true; this.frame = new JFrame("Fenetre Chat avec "+ userString); @@ -90,7 +107,7 @@ public class FenetreChat extends JFrame implements PropertyChangeListener{ this.addWidgets(); //frame.getContentPane().add(panel, BorderLayout.CENTER); afficherHistorique(); - + frame.getRootPane().setDefaultButton(envoyer); frame.addWindowListener(wa); frame.setVisible(true); @@ -126,10 +143,32 @@ public class FenetreChat extends JFrame implements PropertyChangeListener{ //zone pour rentrer les message à envoyer text = new JTextArea(10, 3); text.setForeground(Color.WHITE); - text.setFont(new Font("Century Schoolbook", Font.PLAIN, 11)); + text.setBackground(Color.GRAY); + text.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY)); + text.setFont(new Font("Century Schoolbook", Font.PLAIN, 12)); text.setText("Enter your message"); text.setOpaque(false); + text.addKeyListener(new KeyListener() { + public void keyPressed(KeyEvent e) { + if (e.getKeyCode() == KeyEvent.VK_ENTER){ + e.consume(); + } + } + + @Override + public void keyTyped(KeyEvent e) { + // TODO Auto-generated method stub + + } + + @Override + public void keyReleased(KeyEvent e) { + // TODO Auto-generated method stub + + } + }); + JScrollPane sp = new JScrollPane(text); //zone affichage texte @@ -143,7 +182,7 @@ public class FenetreChat extends JFrame implements PropertyChangeListener{ frame.getContentPane().add(sp2, gbc); //bouton envoyer - JButton envoyer = new JButton("Send"); + envoyer = new JButton("Send"); envoyer.setOpaque(false); frame.getRootPane().setDefaultButton(envoyer); envoyer.addActionListener(new ActionListener() { @@ -279,6 +318,7 @@ public class FenetreChat extends JFrame implements PropertyChangeListener{ e.printStackTrace(); } agent.getListeTCPChat().remove(t); + agent.getListeTCPChat2().remove(t); break; } @@ -289,20 +329,6 @@ public class FenetreChat extends JFrame implements PropertyChangeListener{ } public static void fermer() { - TCPChat t = null; - /*try { - - InetAddress adr = dest.getAddress(); - for(TCPChat tcp : agent.getListeTCPChat()) { - if(tcp.getSocket().getInetAddress().equals(adr)) { - t=tcp; - } - } - t.getSocket().close(); - } catch (IOException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - }*/ frame.dispose(); } diff --git a/chatGitElise/src/gui/FenetreInscription.java b/chatGitElise/src/gui/FenetreInscription.java index f3fea95..9d8540c 100644 --- a/chatGitElise/src/gui/FenetreInscription.java +++ b/chatGitElise/src/gui/FenetreInscription.java @@ -8,6 +8,9 @@ import java.awt.GridLayout; import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.KeyAdapter; +import java.awt.event.KeyEvent; +import java.awt.event.KeyListener; import javax.swing.BorderFactory; import javax.swing.JButton; @@ -97,6 +100,21 @@ public class FenetreInscription implements ActionListener { JLabel text = new JLabel("Login: ", SwingConstants.CENTER); text.setForeground(Color.WHITE); text.setOpaque(false); + loginfield.addKeyListener(new KeyAdapter() { + public void keyTyped(KeyEvent e) { + if(e.getKeyChar() =='?' || e.getKeyChar() == '&' || e.getKeyChar() == '/' || e.getKeyChar() =='=' || e.getKeyChar() == KeyEvent.VK_SPACE) { + e.consume(); + } + } + }); + pseudofield.addKeyListener(new KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + if(e.getKeyChar() =='?' || e.getKeyChar() == '&' || e.getKeyChar() == '/' || e.getKeyChar() =='=' ||e.getKeyChar() == KeyEvent.VK_SPACE ) { + e.consume(); + } + } + }); JLabel text2 = new JLabel("Pseudo: ", SwingConstants.CENTER); text2.setForeground(Color.WHITE); text2.setOpaque(false); diff --git a/chatGitElise/src/gui/FenetreMenu.java b/chatGitElise/src/gui/FenetreMenu.java index c6ea738..0d72b57 100644 --- a/chatGitElise/src/gui/FenetreMenu.java +++ b/chatGitElise/src/gui/FenetreMenu.java @@ -194,11 +194,12 @@ public class FenetreMenu { e.printStackTrace(); } try { - new FenetreChat(agent, selected.toString()); + FenetreChat.getInstance(agent, selected.toString()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } + cb.setSelectedItem(agent.getUser().getPseudo()); } });