From 3f069117b463b80022020cec48a9e30c282aa7c6 Mon Sep 17 00:00:00 2001
From: Hai HoDac <hhodac@student.unimelb.edu.au>
Date: Fri, 25 Oct 2019 17:09:22 +1100
Subject: [PATCH] added blinks
---
src/GUI/DrawingArea.java | 54 +++++++++++++++++-----------------
src/client/DrawingUpdate.java | 55 +++++++++++++++++++++++++++++++++++
2 files changed, 82 insertions(+), 27 deletions(-)
diff --git a/src/GUI/DrawingArea.java b/src/GUI/DrawingArea.java
index 49f49a1..98246f2 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 9f526a7..bb92006 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
--
GitLab