diff --git a/src/GUI/DrawingArea.java b/src/GUI/DrawingArea.java index 49f49a16152d1b1ce0985d8b6bdf4c5a13cae38d..98246f24433a09866c45df28c54893be39bb3c2b 100644 --- a/src/GUI/DrawingArea.java +++ b/src/GUI/DrawingArea.java @@ -296,9 +296,9 @@ public class DrawingArea extends JPanel implements MouseMotionListener, MouseLis try { drawingController.broadcastDrawing(client.getUserName(), drawing, currentMode.toString(), shapeColor, strokeSize); - if (currentMode == Mode.TEXT){ - notifyUsingTimer(); - } +// if (currentMode == Mode.TEXT){ +// notifyUsingTimer(); +// } // else { // drawingController.broadcastDrawingUserStopped(client.getUserName()); // } @@ -310,30 +310,30 @@ public class DrawingArea extends JPanel implements MouseMotionListener, MouseLis drawing = null; } - private void notifyUsingTimer() throws RemoteException { - - Timer timer = new Timer(4000, new ActionListener() - { - - @Override - public void actionPerformed(ActionEvent e) - { - try { - client.getDrawingController().broadcastDrawingUserStopped(client.getDefaultUserName()); - } catch (RemoteException ex) { - ex.printStackTrace(); - } - - } - - }); - try { - client.getDrawingController().broadcastDrawingUser(client.getDefaultUserName()); - } catch (RemoteException ex) { - ex.printStackTrace(); - } - timer.start(); - } +// private void notifyUsingTimer() throws RemoteException { +// +// Timer timer = new Timer(4000, new ActionListener() +// { +// +// @Override +// public void actionPerformed(ActionEvent e) +// { +// try { +// client.getDrawingController().broadcastDrawingUserStopped(client.getUserName()); +// } catch (RemoteException ex) { +// ex.printStackTrace(); +// } +// +// } +// +// }); +// try { +// client.getDrawingController().broadcastDrawingUser(client.getUserName()); +// } catch (RemoteException ex) { +// ex.printStackTrace(); +// } +// timer.start(); +// } @Override public void mouseEntered(MouseEvent e) { diff --git a/src/client/DrawingUpdate.java b/src/client/DrawingUpdate.java index 9f526a798491bde6d896c09f3c257ea68b8d02e8..bb920065cd8235615d3fb9ad60f49bcf0b84e202 100644 --- a/src/client/DrawingUpdate.java +++ b/src/client/DrawingUpdate.java @@ -4,6 +4,8 @@ import remote.IDrawingUpdate; import javax.swing.*; import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.IOException; @@ -50,6 +52,29 @@ public class DrawingUpdate extends UnicastRemoteObject implements IDrawingUpdate client.getApplicationMain().getPaintGUI().getDrawingArea().getG2().setColor(color); client.getApplicationMain().getPaintGUI().getDrawingArea().getG2().drawString(text, startPoint.x, startPoint.y); client.getApplicationMain().getPaintGUI().getDrawingArea().repaint(); + + removeClientTimer removeClient = new removeClientTimer(fromClient, client); + removeClient.start(); +// +// Timer timer = new Timer(1000, new ActionListener() +// { +// private int i = 0; +// @Override +// public void actionPerformed(ActionEvent e) +// { +// DefaultListModel temp = client.getApplicationMain().getChatScreen().getAllUserModel(); +// System.out.println("action performed" + Integer.toString(i)); +// int elementIndex = -1; +// if(temp.contains(fromClient)){ +// elementIndex = temp.indexOf(fromClient); +// temp.remove(elementIndex); +// System.out.println("removed from list"); +// } +// } +// }); +// timer.start(); + + return true; } @@ -136,3 +161,33 @@ public class DrawingUpdate extends UnicastRemoteObject implements IDrawingUpdate return true; } } + +class removeClientTimer extends Thread { + private String fromClient; + private Client client; + + public removeClientTimer (String fromClient, Client client) { + this.fromClient = fromClient; + this.client = client; + } + + @Override + public void run() + { + try { + DefaultListModel temp = client.getApplicationMain().getChatScreen().getAllUserModel(); + if(!temp.contains(fromClient)) temp.addElement(fromClient); + + sleep(1000); + + int elementIndex = -1; + if(temp.contains(fromClient)){ + elementIndex = temp.indexOf(fromClient); + temp.remove(elementIndex); + } + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + +} \ No newline at end of file