import java.net.*;
import java.io.*;

public abstract class wb {
	private static wbPanel whiteBoard;
	public static Vector shapes;
	public static Socket socket;
	public static DataInputStream in;
	public static DataOutputStream out;
	public static boolean sockAvail;

	public static synchronized void setWb(wbPanel wp, Socket s) {
		shapes = new Vector();
		whiteBoard = wp;
		socket = s;
		sockAvail = true;
		try {
			in = new DataInputStream(socket.getInputStream());
			out = new DataOutputStream(socket.getOutputStream());
		} catch (IOException e) {
			return;
		}
	}

	public static synchronized void clearWb() {
		shapes = new Vector();
		whiteBoard.repaint();
	}

	public static synchronized void sockClose() {
		try {
			socket.close();
		} catch (IOException e) {
		} finally {
			sockAvail = false;
		}
	}

	public static synchronized void addShape(Shape s, boolean local) {
		shapes.addElement(s);  // add shape to local whiteBoard

		if (local == true && sockAvail) {
			try {
				out.writeInt(s.x1);
				out.writeInt(s.y1);
				out.writeInt(s.x2);
				out.writeInt(s.y2);
				out.writeInt(s.c.getRGB());
			} catch (IOException e) {
				wb.sockClose();
				return;
			}
		}
	}
}
