From 26243f1363acf05ba702b928a4d4e4b698c367f7 Mon Sep 17 00:00:00 2001 From: LMAGallois Date: Mon, 4 Jan 2021 16:47:33 +0100 Subject: [PATCH] historique --- .../Clavardage/src/controller/Controller.java | 11 ++-- .../Clavardage/src/controller/Historique.java | 50 +++++++++++++++---- Application/Clavardage/src/model/Chat.java | 3 ++ Application/Clavardage/src/model/Message.java | 7 +++ .../Clavardage/src/model/Msg_Text.java | 6 ++- 5 files changed, 59 insertions(+), 18 deletions(-) diff --git a/Application/Clavardage/src/controller/Controller.java b/Application/Clavardage/src/controller/Controller.java index 1998196..07331ea 100644 --- a/Application/Clavardage/src/controller/Controller.java +++ b/Application/Clavardage/src/controller/Controller.java @@ -359,15 +359,14 @@ public class Controller { /*** recup history and put it in model ***/ - /* try { - System.out.println(this.getHistory().retrieveMessage(getMyUser(), c.getRemoteUser())); - String history = this.getHistory().retrieveMessage(getMyUser(), c.getRemoteUser()); + //System.out.println(this.getHistory().retrieveMessage(getMyUser(), c.getRemoteUser())); + c.addListMessage(this.getHistory().retrieveMessage(getMyUser(), c.getRemoteUser())); } catch (SQLException e) { System.out.println("souci avec le retrieveMsg"); e.printStackTrace(); } - */ + //System.out.println(myUser.getChats().get(myUser.getChatIndexOf(rm))); return c; } public String askOpenSession(int index) { @@ -382,7 +381,7 @@ public class Controller { } else { // else create it c=openSession(rm); - JOptionPane.showMessageDialog(null ,"New session with "+c.getRemoteUser().getPseudo()); + JOptionPane.showMessageDialog(null ,"New session with "+rm.getPseudo()); } // Look for history @@ -425,7 +424,7 @@ public class Controller { // Sauvegarde dans la base de données DateFormat dateFormat = new SimpleDateFormat("yyyy MM dd HH mm ss"); Date date=new Date(); - //this.getHistory().saveMessage(getMyUser(), c.getRemoteUser(),message ,dateFormat.format(date)); + this.getHistory().saveMessage(getMyUser(), c.getRemoteUser(),message ,dateFormat.format(date)); // Send message out.println(message); diff --git a/Application/Clavardage/src/controller/Historique.java b/Application/Clavardage/src/controller/Historique.java index 54d6fe0..74b2643 100644 --- a/Application/Clavardage/src/controller/Historique.java +++ b/Application/Clavardage/src/controller/Historique.java @@ -8,10 +8,14 @@ import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; +import java.util.ArrayList; import java.util.Calendar; import javax.sql.rowset.JdbcRowSet; +import model.Message; +import model.Msg_Text; + public class Historique { public void saveMessage(model.User ctr1, model.RemoteUser ctr2, String input, String date) { @@ -78,7 +82,7 @@ public class Historique { } - public String retrieveMessage(model.LocalUser user1, model.RemoteUser user2) throws SQLException { + public ArrayList retrieveMessage(model.LocalUser user1, model.RemoteUser user2) throws SQLException { try { Class.forName("java.sql.Driver"); } catch (ClassNotFoundException e) { @@ -86,12 +90,32 @@ public class Historique { e.printStackTrace(); } Connection con=DriverManager.getConnection("jdbc:mysql://srv-bdens.insa-toulouse.fr:3306","tp_servlet_003","povu3Ma2"); - Statement stat=con.createStatement(); - Statement stat2=con.createStatement(); + Statement stat = null; + try { + stat = con.createStatement(); + } catch (SQLException e2) { + // TODO Auto-generated catch block + e2.printStackTrace(); + } + Statement stat2 = null; + try { + stat2 = con.createStatement(); + } catch (SQLException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } int nb_changed_rows = stat.executeUpdate("USE tp_servlet_003"); try { - nb_changed_rows = stat.executeUpdate("CREATE TABLE chat ( user_IPcode1 INTEGER, user_IPcode2 INTEGER ,Message VARCHAR(450) ,temps VARCHAR(450) )"); + nb_changed_rows = stat.executeUpdate("USE TABLE chat ( user_IPcode1 INTEGER, user_IPcode2 INTEGER ,Message VARCHAR(450) ,temps VARCHAR(450) )"); + }catch (Exception e) { + e.printStackTrace(); + + } + nb_changed_rows = stat2.executeUpdate("USE tp_servlet_003"); + + try { + nb_changed_rows = stat2.executeUpdate("USE TABLE chat ( user_IPcode1 INTEGER, user_IPcode2 INTEGER ,Message VARCHAR(450) ,temps VARCHAR(450) )"); }catch (Exception e) { e.printStackTrace(); @@ -101,7 +125,8 @@ public class Historique { boolean encore1 = RSSent.next(); ResultSet RSReceived=(stat2.executeQuery("SELECT user_IPcode1, user_IPcode2, Message, temps FROM chat WHERE user_IPcode1="+user2.getIPcode())); boolean encore2 = RSReceived.next(); - String message=null; + ArrayList message=new ArrayList(); + //String message=null; String[] string1=null; String[] string2=null; Calendar date1=Calendar.getInstance(); @@ -114,7 +139,6 @@ public class Historique { encore1=RSSent.next(); } string1=RSSent.getString(4).split(" "); - System.out.println(RSSent.getString(4)); date1.set(Integer.valueOf(string1[0]), Integer.valueOf(string1[1]), Integer.valueOf(string1[2]),Integer.valueOf(string1[3]), Integer.valueOf(string1[4]), Integer.valueOf(string1[5])); //RSReceived=(stat.executeQuery("SELECT user_IPcode1, user_IPcode2, Message, temps FROM chat WHERE user_IPcode1="+user2.getIPcode())); @@ -125,13 +149,17 @@ public class Historique { } string2=RSReceived.getString(4).split(" "); date2.set(Integer.valueOf(string2[0]), Integer.valueOf(string2[1]), Integer.valueOf(string2[2]),Integer.valueOf(string2[3]), Integer.valueOf(string2[4]), Integer.valueOf(string2[5])); - + if (date1.compareTo(date2)>=0) { - message=message+"\n"+RSReceived.getString(3); - message=message+"\n"+RSSent.getString(3); + Msg_Text msg =new Msg_Text(user2,RSReceived.getString(4),RSReceived.getString(3)); + message.add(msg); + Msg_Text msg1 =new Msg_Text(user1,RSSent.getString(4),RSSent.getString(3)); + message.add(msg1); }else { - message=message+"\n"+RSSent.getString(3); - message=message+"\n"+RSReceived.getString(3); + Msg_Text msg1 =new Msg_Text(user1,RSSent.getString(4),RSSent.getString(3)); + message.add(msg1); + Msg_Text msg =new Msg_Text(user2,RSReceived.getString(4),RSReceived.getString(3)); + message.add(msg); } encore1=RSSent.next(); encore2=RSReceived.next(); diff --git a/Application/Clavardage/src/model/Chat.java b/Application/Clavardage/src/model/Chat.java index 9e85b8f..d1901a5 100644 --- a/Application/Clavardage/src/model/Chat.java +++ b/Application/Clavardage/src/model/Chat.java @@ -49,6 +49,9 @@ public class Chat { public void addMessage(Message msg) { this.messages.add(msg); } + public void addListMessage( ArrayList msg) { + this.messages=msg; + } public void activate() { this.active = true; } diff --git a/Application/Clavardage/src/model/Message.java b/Application/Clavardage/src/model/Message.java index 7bf5a1a..66753cd 100644 --- a/Application/Clavardage/src/model/Message.java +++ b/Application/Clavardage/src/model/Message.java @@ -24,6 +24,10 @@ public abstract class Message { DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); this.date = dateFormat.format(new Date()); } + public Message(User autor, String date) { + this.autor = autor; + this.date = date; + } /*** GETTERS ***/ public String getDate() { return date; @@ -36,6 +40,9 @@ public abstract class Message { public void setAutorIP(User autor) { this.autor = autor; } + public void setDate(String date) { + this.date=date; + } public abstract Object getMessage(); diff --git a/Application/Clavardage/src/model/Msg_Text.java b/Application/Clavardage/src/model/Msg_Text.java index 7ec3750..dc428f6 100644 --- a/Application/Clavardage/src/model/Msg_Text.java +++ b/Application/Clavardage/src/model/Msg_Text.java @@ -11,7 +11,11 @@ public class Msg_Text extends Message{ super(autor); this.text = text; } - + public Msg_Text(User autor,String date, String text) { + super(autor,date); + this.text = text; + } + @Override public String getMessage() { return this.text;