From 9afac8903f4eb08dcd45f4858a765b42a71a4d7c Mon Sep 17 00:00:00 2001 From: Hai HoDac <hhodac@student.unimelb.edu.au> Date: Thu, 24 Oct 2019 19:45:45 +1100 Subject: [PATCH] Merged with Ryan's code --- src/GUI/DrawingArea.java | 4 ++-- src/client/DrawingUpdate.java | 3 ++- src/remote/IDrawingController.java | 2 +- src/remote/IDrawingUpdate.java | 2 +- src/server/DrawingController.java | 5 +++-- src/server/Server.java | 10 ++++++++++ src/server/server.policy | 1 + 7 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/GUI/DrawingArea.java b/src/GUI/DrawingArea.java index c1f7a65..42b74cd 100644 --- a/src/GUI/DrawingArea.java +++ b/src/GUI/DrawingArea.java @@ -205,11 +205,11 @@ public class DrawingArea extends JPanel implements MouseMotionListener, MouseLis switch (currentMode) { case TEXT: - + g2.setColor(shapeColor); g2.setFont(new Font("TimesRoman", Font.PLAIN, textSize)); g2.drawString(textString, startPoint.x, startPoint.y); try { - client.getDrawingController().broadcastText(client.getUserName(), textString, g2.getFont(), startPoint); + client.getDrawingController().broadcastText(client.getUserName(), textString, g2.getFont(), shapeColor, startPoint); } catch (RemoteException ex) { ex.printStackTrace(); } diff --git a/src/client/DrawingUpdate.java b/src/client/DrawingUpdate.java index 68c8f9a..00f9bd0 100644 --- a/src/client/DrawingUpdate.java +++ b/src/client/DrawingUpdate.java @@ -21,9 +21,10 @@ public class DrawingUpdate extends UnicastRemoteObject implements IDrawingUpdate } @Override - public boolean notifyTextDrawing(String fromClient, String text, Font font, Point startPoint) throws RemoteException { + public boolean notifyTextDrawing(String fromClient, String text, Font font, Color color, Point startPoint) throws RemoteException { client.getApplicationMain().getPaintGUI().getDrawingArea().getG2().setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); client.getApplicationMain().getPaintGUI().getDrawingArea().getG2().setFont(font); + client.getApplicationMain().getPaintGUI().getDrawingArea().getG2().setColor(color); client.getApplicationMain().getPaintGUI().getDrawingArea().getG2().drawString(text, startPoint.x, startPoint.y); client.getApplicationMain().getPaintGUI().getDrawingArea().repaint(); return true; diff --git a/src/remote/IDrawingController.java b/src/remote/IDrawingController.java index be96a21..3aa40d3 100644 --- a/src/remote/IDrawingController.java +++ b/src/remote/IDrawingController.java @@ -15,7 +15,7 @@ import java.rmi.RemoteException; */ public interface IDrawingController extends Remote { - boolean broadcastText(String fromClient, String text, Font font, Point startPoint) throws RemoteException; + boolean broadcastText(String fromClient, String text, Font font, Color color, Point startPoint) throws RemoteException; boolean broadcastDrawing(String fromClient, Shape drawing, String mode, Color color, int strokeSize) throws RemoteException; boolean broadcastDraggingDrawing(String fromClient, Shape drawing, String mode, Color color, int strokeSize) throws RemoteException; boolean broadcastClearCanvas(String fromClient) throws RemoteException; diff --git a/src/remote/IDrawingUpdate.java b/src/remote/IDrawingUpdate.java index 02f17f1..a52781b 100644 --- a/src/remote/IDrawingUpdate.java +++ b/src/remote/IDrawingUpdate.java @@ -6,7 +6,7 @@ import java.rmi.Remote; import java.rmi.RemoteException; public interface IDrawingUpdate extends Remote, Serializable { - boolean notifyTextDrawing(String fromClient, String text, Font font, Point startPoint) throws RemoteException; + boolean notifyTextDrawing(String fromClient, String text, Font font, Color color, Point startPoint) throws RemoteException; boolean notifyDrawing(String fromClient, Shape drawing, String mode, Color color, int strokeSize) throws RemoteException; boolean notifyDraggingDrawing(String fromClient, Shape drawing, String mode, Color color, int strokeSize) throws RemoteException; boolean notifyCanvasClearance(String fromClient) throws RemoteException; diff --git a/src/server/DrawingController.java b/src/server/DrawingController.java index 934d892..484ecda 100644 --- a/src/server/DrawingController.java +++ b/src/server/DrawingController.java @@ -30,12 +30,13 @@ public class DrawingController extends UnicastRemoteObject implements IDrawingCo } @Override - public boolean broadcastText(String fromClient, String text, Font font, Point startPoint) throws RemoteException { + public boolean broadcastText(String fromClient, String text, Font font, Color color, Point startPoint) throws RemoteException { System.out.print("Broadcasting drawing to everyone..."); g2 = (Graphics2D) bufferedImage.getGraphics(); g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2.setFont(font); + g2.setPaint(color); g2.drawString(text, startPoint.x, startPoint.y); g2 = (Graphics2D) bufferedImage.getGraphics(); g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); @@ -47,7 +48,7 @@ public class DrawingController extends UnicastRemoteObject implements IDrawingCo { if (!u.getUserName().equals(fromClient)) { client = u.getIDrawingUpdate(); - client.notifyTextDrawing(fromClient, text, font, startPoint); + client.notifyTextDrawing(fromClient, text, font, color, startPoint); } } diff --git a/src/server/Server.java b/src/server/Server.java index 1063d88..5a9b983 100644 --- a/src/server/Server.java +++ b/src/server/Server.java @@ -60,6 +60,16 @@ public class Server public void run() throws RemoteException { + String serverIP = ""; + try { + InetAddress inetAddress = InetAddress.getLocalHost(); + serverIP = inetAddress.getHostAddress(); + } catch (Exception e) { + e.printStackTrace(); + } + + System.setProperty("java.rmi.server.hostname", serverIP); + LocateRegistry.createRegistry(1099); Registry registry = LocateRegistry.getRegistry(); // if (System.getSecurityManager() == null) { diff --git a/src/server/server.policy b/src/server/server.policy index 5c05949..be17177 100644 --- a/src/server/server.policy +++ b/src/server/server.policy @@ -1,3 +1,4 @@ grant codeBase "file:/Users/haiho/OneDrive - The University of Melbourne/Distributed Systems (COMP90015)/Assignment 2/InfinityMonkeys-remaster/comp90015-dsass2-infinitymonkeys-remaster/out/production/comp90015-dsass2-infinitymonkeys-remaster/" { + permission java.util.PropertyPermission '*', "read,write"; permission java.security.AllPermission; }; \ No newline at end of file -- GitLab