diff --git a/src/GUI/DrawingArea.java b/src/GUI/DrawingArea.java index c1f7a65306f82f3b6277cea4197b1e61cafe319e..42b74cdfd99efea2d9e05d4ab74cc1e5c1921de2 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 68c8f9ae6c6b685aa99eca6a0ee64b4bf61bd230..00f9bd09ada757434e3a8143f936f52913c59cbd 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 be96a215a69686225e4db0ecfc69958a25396b33..3aa40d3bcc5f77607e8df4e711a63305e083edc6 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 02f17f1e685503799e74e2ca9f3f7d26bdff404d..a52781b7d17b92e080a36c8661e82107c95580af 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 934d8926cfd0159b8fb32d1c8f464cb04381dc2a..484ecdab32ba571564c62dbf2f2ff872698d9077 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 1063d88fb21da8e2cd3ea5078816e9dff18712e8..5a9b983141a46f1dd5fd60d0076f0e733aadff47 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 5c059491c631fa37d14fc62d9654cdb13ce184c0..be17177b9474e62dc5d6c236756a51054ba11904 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