diff --git a/chatGit/background.jpg b/chatGit/background.jpg new file mode 100644 index 0000000..1762d1f Binary files /dev/null and b/chatGit/background.jpg differ diff --git a/chatGit/bin/controller/Agent.class b/chatGit/bin/controller/Agent.class index c085258..1b40841 100644 Binary files a/chatGit/bin/controller/Agent.class and b/chatGit/bin/controller/Agent.class differ diff --git a/chatGit/bin/gui/FenetreInscription$1.class b/chatGit/bin/gui/FenetreInscription$1.class index c1cdd31..18c1603 100644 Binary files a/chatGit/bin/gui/FenetreInscription$1.class and b/chatGit/bin/gui/FenetreInscription$1.class differ diff --git a/chatGit/bin/gui/FenetreInscription.class b/chatGit/bin/gui/FenetreInscription.class index 977dea6..6b1ec8b 100644 Binary files a/chatGit/bin/gui/FenetreInscription.class and b/chatGit/bin/gui/FenetreInscription.class differ diff --git a/chatGit/bin/gui/FenetreMenu$1.class b/chatGit/bin/gui/FenetreMenu$1.class index 0aa1c73..8b77f9b 100644 Binary files a/chatGit/bin/gui/FenetreMenu$1.class and b/chatGit/bin/gui/FenetreMenu$1.class differ diff --git a/chatGit/bin/gui/FenetreMenu$2.class b/chatGit/bin/gui/FenetreMenu$2.class index 1d61004..e1e27b6 100644 Binary files a/chatGit/bin/gui/FenetreMenu$2.class and b/chatGit/bin/gui/FenetreMenu$2.class differ diff --git a/chatGit/bin/gui/FenetreMenu$3.class b/chatGit/bin/gui/FenetreMenu$3.class index 7a73523..a22200e 100644 Binary files a/chatGit/bin/gui/FenetreMenu$3.class and b/chatGit/bin/gui/FenetreMenu$3.class differ diff --git a/chatGit/bin/gui/FenetreMenu$4.class b/chatGit/bin/gui/FenetreMenu$4.class index 11b51fd..2b7293d 100644 Binary files a/chatGit/bin/gui/FenetreMenu$4.class and b/chatGit/bin/gui/FenetreMenu$4.class differ diff --git a/chatGit/bin/gui/FenetreMenu$5.class b/chatGit/bin/gui/FenetreMenu$5.class index ac58361..dea5fae 100644 Binary files a/chatGit/bin/gui/FenetreMenu$5.class and b/chatGit/bin/gui/FenetreMenu$5.class differ diff --git a/chatGit/bin/gui/FenetreMenu.class b/chatGit/bin/gui/FenetreMenu.class index 73da8fd..6e26d3d 100644 Binary files a/chatGit/bin/gui/FenetreMenu.class and b/chatGit/bin/gui/FenetreMenu.class differ diff --git a/chatGit/bin/gui/FenetreModifPseudo.class b/chatGit/bin/gui/FenetreModifPseudo.class new file mode 100644 index 0000000..00f3f47 Binary files /dev/null and b/chatGit/bin/gui/FenetreModifPseudo.class differ diff --git a/chatGit/config.json b/chatGit/config.json index fa67597..32474ab 100644 --- a/chatGit/config.json +++ b/chatGit/config.json @@ -1,7 +1,7 @@ { "serveur":{ "actif": 1, - "url": "http://localhost:8080/test/toto", + "url": "https://srv-gei-tomcat.insa-toulouse.fr/barnabeFoussats/toto", "port": 8080 }, "config":{ diff --git a/chatGit/src/controller/Agent.java b/chatGit/src/controller/Agent.java index 074676a..27cc05a 100644 --- a/chatGit/src/controller/Agent.java +++ b/chatGit/src/controller/Agent.java @@ -174,7 +174,7 @@ public class Agent implements PropertyChangeListener{ public boolean connectInscription(String pseudo, String login) throws IOException, InterruptedException { MessagePseudo msg_connexion = new MessagePseudo(this.localAddress, this.broadcast, this.user.getPort(), App.portDest, 0, "", this.user.getId()); BOut.send(msg_connexion, this.broadcast, App.portDest); - Thread.sleep(5000); + Thread.sleep(2000); ArrayList msg_recus = BIn.getListMessage(); for(int i =0; i msg_recus = BIn.getListMessage(); for(int i =0; iBienvenue sur le tchat"); + texte.setHorizontalAlignment(SwingConstants.CENTER); + liste = new JLabel("Active users", JLabel.LEFT); + liste.setOpaque(false); JMenu contenu = new JMenu("Actions"); contenu.setForeground(Color.BLUE); contenu.setHorizontalAlignment(SwingConstants.CENTER); - - JButton refresh = new JButton("Refresh"); - refresh.setForeground(Color.GRAY); - refresh.setHorizontalAlignment(SwingConstants.CENTER); //JMenuItem usersActifs = new JMenuItem("Active users"); JMenuItem modifierPseudo = new JMenuItem("Modify your pseudo"); @@ -118,7 +133,6 @@ public class FenetreMenu { menu.add(contenu); - menu.add(refresh); frame.setJMenuBar(menu); /*liste déroulante des utilsateurs actifs, @@ -155,33 +169,7 @@ public class FenetreMenu { } }); - - /*actions pour refresh*/ - /* refresh.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - String users = agent.getList().actifUsers(); - for(String pseudo : users.split("\n")) { - if (!v.contains(pseudo)) { - v.add(pseudo); - } - } - JComboBox cb = new JComboBox(v); - cb.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent event) { - Object selected = cb.getSelectedItem(); - int idDest = agent.getDb().getIdFromPseudo(selected.toString()); - try { - agent.createChat(idDest, selected.toString()); - } catch (IOException e) { - System.out.println("Creation tcp chat impossible"); - e.printStackTrace(); - } - new FenetreChat(agent, selected.toString()); - } - }); - }});*/ - frame.getContentPane().add(refresh, BorderLayout.NORTH); panel.add(BorderLayout.CENTER, jlabel); panel.add(BorderLayout.SOUTH , texte ); panel.add(BorderLayout.WEST, cb); @@ -190,50 +178,14 @@ public class FenetreMenu { /*actions pour modifier le pseudo*/ - modifierPseudo.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - JLabel Text = new JLabel("Enter your new pseudo", SwingConstants.CENTER); - JTextField field = new JTextField(2); - JButton cancel = new JButton("Cancel"); - cancel.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - frame.dispose(); - try { - new FenetreMenu(agent); - } catch (IOException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - }}); - JButton ok = new JButton("Continue"); - frame.getRootPane().setDefaultButton(ok); - ok.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - String newPseudo = field.getText(); - try { - if(agent.changerPseudo(newPseudo)) { - JOptionPane.showMessageDialog(frame, "Your new pseudo is "+newPseudo); - frame.dispose(); - new FenetreMenu(agent); - }else { - JOptionPane.showMessageDialog(frame, "Pseudo already, use choose another one"); - } - } catch (HeadlessException | IOException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - }; - } - }); - JPanel panel1 = new JPanel(new GridLayout(4,1)); - panel1.add(cancel); - panel1.add(Text); - panel1.add(field); - panel1.add(ok); - frame.getContentPane().removeAll(); - frame.getContentPane().add(panel1,BorderLayout.CENTER); - frame.setVisible(true); - } - }); + + modifierPseudo.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + frame.dispose(); + new FenetreModifPseudo(agent); + } + }); + deco.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { diff --git a/chatGit/src/gui/FenetreModifPseudo.java b/chatGit/src/gui/FenetreModifPseudo.java new file mode 100644 index 0000000..0e03dd7 --- /dev/null +++ b/chatGit/src/gui/FenetreModifPseudo.java @@ -0,0 +1,107 @@ +package gui; + +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.GridLayout; +import java.awt.HeadlessException; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import javax.swing.BorderFactory; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JTextField; +import javax.swing.SwingConstants; +import javax.swing.JOptionPane; + +import java.io.IOException; + +import controller.*; + +public class FenetreModifPseudo implements ActionListener { + JFrame frame; + JPanel panel; + JTextField pseudofield; + JLabel Text; + JButton ok; + JButton Cancel; + Agent agent; + + /* + * Constructeur d'une fenetre d'affichage pour la connexion d'un utilisateur. + * Cette fenetre sera munie d'un bouton de connexion et d'une zone de saisie de pseudo. + */ + public FenetreModifPseudo(Agent agent) { + this.agent = agent; + //creer une instance JFrame + frame = new JFrame("Modification pseudo"); + //sortir quand l’utilisateur ferme le frame + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + // fixer les dimensions de la fenetre + frame.setSize(new Dimension(120, 40)); + //Creer le JPanel + panel = new JPanel(new GridLayout(4,1)); + //Ajouter les elements + this.addWidgets(); + //Set the default button. + frame.getRootPane().setDefaultButton(ok); + //Ajouter le panel a la window + frame.getContentPane().add(panel, BorderLayout.CENTER); + //L'utilisateur ne pourra pas aggrandir la fenetre + this.frame.setResizable(false); + //Afficher la fenetre + frame.pack(); + frame.setVisible(true); + } + + private void addWidgets() { + // Créer Zone d'insertion de texte pour le pseudo + this.pseudofield = new JTextField(2); + // creation d'un label qui contiendra un txt au centre + this.Text = new JLabel("Type your new pseudo", SwingConstants.CENTER); + //Ajout d'un bouton Connexion + this.ok = new JButton("Continue"); + this.Cancel = new JButton("Cancel"); + this.ok.addActionListener(this); + this.Cancel.addActionListener(this); + //On associe au bouton Connexion des actions a realiser + this.ok.addActionListener(this); + // On ajouter les differents elements au panel + panel.add(pseudofield); + panel.add(Text); + panel.add(ok); + panel.add(Cancel); + //ajouter un effet de bord transparent au composant Jlabel + Text.setBorder(BorderFactory.createEmptyBorder(5,5,5,5)); + } + + public void actionPerformed(ActionEvent event) { + Object source = event.getSource(); + if(source == ok){ + String newPseudo = pseudofield.getText(); + try { + if(agent.changerPseudo(newPseudo)) { + JOptionPane.showMessageDialog(frame, "Your new pseudo is "+newPseudo); + frame.dispose(); + new FenetreMenu(agent); + }else { + JOptionPane.showMessageDialog(frame, "Pseudo already, use choose another one"); + } + } catch (HeadlessException e1) { + e1.printStackTrace(); + } catch (IOException e1) { + e1.printStackTrace(); + }; + }else if(source == Cancel) { + frame.dispose(); + try { + new FenetreMenu(agent); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } +}