From f272c11f91ddd67d651c2529208223bbbeba203d Mon Sep 17 00:00:00 2001 From: benassai Date: Fri, 18 Dec 2020 03:18:11 +0100 Subject: [PATCH 1/2] L'historique fonctionne. --- .../src/bdd/GestionnaireHistorique.java | 23 ++++++++++++------- Projet_POO/src/ui/DiscussionUI.java | 17 ++++++++++---- 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/Projet_POO/src/bdd/GestionnaireHistorique.java b/Projet_POO/src/bdd/GestionnaireHistorique.java index d4f403f..d187645 100644 --- a/Projet_POO/src/bdd/GestionnaireHistorique.java +++ b/Projet_POO/src/bdd/GestionnaireHistorique.java @@ -48,13 +48,15 @@ public class GestionnaireHistorique { - public void recuperer(String id1, String id2) { + public String recuperer(String id1, String id2) { String id = combiner(id1, id2); - Statement st; + Statement st = null; int rs1; - ResultSet rs2; + ResultSet rs2 = null; + Connection con = null; + String history = ""; String query1 = "CREATE TABLE IF NOT EXISTS " + id @@ -64,10 +66,11 @@ public class GestionnaireHistorique { + "PRIMARY KEY (id) );"; String query2 = "SELECT * FROM " + id - + " ORDRE BY id;"; + + " ORDER BY id;"; + try { - Connection con = Liaison.getConnection(); + con = Liaison.getConnection(); st = con.createStatement(); @@ -78,7 +81,8 @@ public class GestionnaireHistorique { while(rs2.next()) { System.out.println("Historic SUCCESS"); - System.out.println(rs2.getString(2)); //indice commence à 1 + history += GestionnaireNom.instance().nomFromId(rs2.getString(2)) + ": "; //indice commence à 1 + history += rs2.getString(3) + "\n"; } // à mettre dans un finally @@ -86,11 +90,14 @@ public class GestionnaireHistorique { st.close(); con.close(); - } catch (SQLException e) { + } + + catch (SQLException e) { System.out.println("Erreur : Historic BDD"); e.printStackTrace(); } + return history; } @@ -104,7 +111,7 @@ public class GestionnaireHistorique { int rs; String query = "INSERT INTO " + id - + "(expediteur, msg) VALUES (" + expediteur + ", " + msg + ");"; + + " (expediteur, msg) VALUES ('" + expediteur + "', '" + msg + "');"; //à réécrire pour éviter les injections try { Connection con = Liaison.getConnection(); diff --git a/Projet_POO/src/ui/DiscussionUI.java b/Projet_POO/src/ui/DiscussionUI.java index bb9df3a..884bdec 100644 --- a/Projet_POO/src/ui/DiscussionUI.java +++ b/Projet_POO/src/ui/DiscussionUI.java @@ -7,6 +7,9 @@ import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; + +import bdd.GestionnaireHistorique; + import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; @@ -58,12 +61,11 @@ public class DiscussionUI extends JFrame implements PropertyChangeListener{ else { historicField.setText(historicField.getText() + GestionnaireNom.instance().nomFromId(session.getIdDestination()) + " s'est déconnecté(e).\n"); - this.finDeSession(0); + this.finDeSession(); } } - public void finDeSession(int i) { - System.out.println(i); + public void finDeSession() { gestionnaireClavardage.instance().deleteSession(session); this.setSession(null); System.out.println(this.session); @@ -73,11 +75,15 @@ public class DiscussionUI extends JFrame implements PropertyChangeListener{ String message = textField.getText(); if (!message.isEmpty() && this.session != null) { textField.setText(""); - historicField.setText(historicField.getText() + GestionnaireNom.instance().nomFromId(session.getIdSource()) +": " + message + "\n"); + historicField.append(GestionnaireNom.instance().nomFromId(session.getIdSource()) +": " + message + "\n"); session.send(GestionnaireNom.instance().nomFromId(session.getIdSource()) + ": " + message+"\n"); + GestionnaireHistorique.instance().ajouter(this.session.getIdSource(), this.session.getIdDestination(), this.session.getIdSource(), message); } } + private void récupérerHistorique() { + historicField.append(GestionnaireHistorique.instance().recuperer(this.session.getIdSource(), this.session.getIdDestination())); + } /** * Create the frame. */ @@ -104,6 +110,7 @@ public class DiscussionUI extends JFrame implements PropertyChangeListener{ historicField.setEditable(false); scrollPane.setViewportView(historicField); historicField.setColumns(10); + this.récupérerHistorique(); textField = new JTextField(); @@ -131,7 +138,7 @@ public class DiscussionUI extends JFrame implements PropertyChangeListener{ DiscussionUI window = (DiscussionUI) windowEvent.getSource(); if (window.session != null) { System.out.println(window.session); - window.finDeSession(1); + window.finDeSession(); } } }); From cb5667dab8c1086b18cda1e9e0cf36abd3825972 Mon Sep 17 00:00:00 2001 From: benassai Date: Fri, 18 Dec 2020 03:23:24 +0100 Subject: [PATCH 2/2] Correction d'un bug quand l'utilisateur appuyait sur le bouton connect sans selectionner un nom dans la liste --- Projet_POO/src/ui/ListUI.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Projet_POO/src/ui/ListUI.java b/Projet_POO/src/ui/ListUI.java index ac4d3b7..41f98e1 100644 --- a/Projet_POO/src/ui/ListUI.java +++ b/Projet_POO/src/ui/ListUI.java @@ -169,10 +169,10 @@ public class ListUI extends JFrame implements Runnable{ public void connect() { try{ String nom = (String) list.getSelectedValue(); - - gestionnaireClavardage gc = gestionnaireClavardage.instance(); - gc.createSession(nom); - + if (nom != null) { + gestionnaireClavardage gc = gestionnaireClavardage.instance(); + gc.createSession(nom); + } }catch (Exception e) { System.out.println("Erreur : connect ListUI"); e.printStackTrace();