TD2: Fix the remaining bugs in the IHM chat client.
[TD_SR.git] / TD2 / IHM / IHM.java
index 08cbf2c8aba88b01c349fa57a2c31c5dfc3c9f55..a10c23dc1ae764d0f0dc981a12773c3f0d77c900 100644 (file)
@@ -12,6 +12,7 @@ import javax.swing.JTextArea;
 import javax.swing.JTextField;
 import javax.swing.ScrollPaneConstants;
 
+import java.util.Random;
 
 /**
  * Applications rĂ©parties
@@ -28,13 +29,32 @@ public class IHM implements ActionListener {
     private JTextArea entrants;
     private JTextField sortants;
     private ArrayList<String> sendMessages;
+    //FIXME: use a random name by thread for now, should be setable
+    private String randName;
 
     IHM() {
         sendMessages = new ArrayList<String>();
+        randName = randomName();
+    }
+
+    private String randomName() {
+
+        int leftLimit = 97; // letter 'a'
+        int rightLimit = 122; // letter 'z'
+        int targetStringLength = 8;
+        Random random = new Random();
+        StringBuilder buffer = new StringBuilder(targetStringLength);
+        for (int i = 0; i < targetStringLength; i++) {
+            int randomLimitedInt = leftLimit + (int)(random.nextFloat() * (rightLimit - leftLimit + 1));
+            buffer.append((char)randomLimitedInt);
+        }
+        String generatedString = buffer.toString();
+
+        return generatedString;
     }
 
     public void go() {
-        JFrame cadre = new JFrame("Client de discussion");
+        JFrame cadre = new JFrame("Client de discussion de " + randName);
         JPanel panneau = new JPanel();
         entrants = new JTextArea(15, 30);
         entrants.setLineWrap(true);
@@ -75,7 +95,7 @@ public class IHM implements ActionListener {
         }
         String mess = (String)sendMessages.remove(0);
         System.out.println("IHM -> message a envoyer : " + mess);
-        return mess;
+        return randName + "> " + mess;
     }
 
     public void writeMessage(String mess) {