Skip to content
Snippets Groups Projects
Select Git revision
  • 2d99e3581a6ca0af76d8328431fe5f970c6c8c3c
  • master default protected
  • hai
  • isaac
  • CheHao
  • Eldar
  • mpriymak
  • master-before-merging-with-hai
  • master-before-merging-with-isaac
  • rmi-working-before-merging-with-isaac
  • all-code-merged-by-hai-v1
11 results

ChatScreen.java

Blame
  • DrawingUpdate.java 1.98 KiB
    package client;
    
    import GUI.DrawingArea;
    import remote.IDrawingUpdate;
    
    import java.awt.*;
    import java.io.Serializable;
    import java.rmi.RemoteException;
    import java.rmi.server.UnicastRemoteObject;
    
    public class DrawingUpdate extends UnicastRemoteObject implements IDrawingUpdate, Serializable {
    
        private Client client;
    
        public DrawingUpdate(Client client) throws RemoteException {
            super();
            this.client = client;
        }
    
        @Override
        public boolean notifyDrawing(String fromClient, Shape drawing, String mode, Color color) throws RemoteException {
            Graphics2D g2 = client.getApplicationMain().getPaintGUI().getDrawingArea().getG2();
            switch (mode) {
                case "OVAL":
                case "RECTANGLE":
                case "CIRCLE":
                case "FREEHAND":
                case "LINE":
                    g2.setColor(color);
                    g2.draw(drawing);
                    break;
                default:
                    System.out.println("Erased");
            }
            g2 = (Graphics2D) client.getApplicationMain().getPaintGUI().getDrawingArea().getImage().getGraphics();
            g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
            g2.setColor(color);
            client.getApplicationMain().getPaintGUI().getDrawingArea().repaint();
            return true;
        }
    
        public boolean notifyDraggingDrawing(String fromClient, Shape drawing, String mode, Color color) throws RemoteException {
            Graphics2D g2 = client.getApplicationMain().getPaintGUI().getDrawingArea().getG2();
            switch (mode) {
                case "FREEHAND":
                    g2.setColor(color);
                    g2.draw(drawing);
                    break;
    
                case "ERASE":
                    g2.setColor(Color.WHITE);
                    g2.fill(drawing);
                    g2.draw(drawing);
                    break;
    
                default:
                    break;
            }
            client.getApplicationMain().getPaintGUI().getDrawingArea().repaint();
            return true;
        }
    }