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());
}
});