/*************************************************
 *
 * Author: 	Evelyn Lai-Tee Cheok
 *			Department of Electrical Engineering
 *			Center for Telecommunications Research
 *			Schapiro Research Building
 *			Columbia University
 *
 * Email: 	laitee@ctr.columbia.edu
 *
 * Author: 	Chi-Hao Li	
 *			Department of Computer Science
 *			Columbia University
 *
 **************************************************/
import java.awt.*;
import Bar;
import ProcessCmd;
import ObjType;

public class SketchPanel extends Panel
{

  MenuWindow main_parent;
  SketchArea sketch_area;
  public ObjPanel   obj_panel;
  public ColorPanel color_panel;
  ProcessCmd procCmd;
  SenderMCSocket senderSock;
  PacketHandler pkt_handler;
  Params params;


  /**
   * State variables of whiteboard
   *
   */
  
  public int   action;
  public Color color;
  public Font  font;

/**
 * Constructor
 *
 *@param parent refenrence to MenuWindow object
 *@return none
 *@exception none
 */

  SketchPanel(Object parent)
  {
	Dimension panelDim = new Dimension();
    this.main_parent = (MenuWindow)parent;
    this.senderSock = main_parent.senderSock;
    this.pkt_handler = main_parent.pkt_handler;
    params = new Params();

  	setBackground(Color.lightGray);  
    //resize(450,500);

	procCmd = new ProcessCmd(this);
    obj_panel   = new ObjPanel(procCmd, ObjType.COUNT, Bar.VERTICAL);
    color_panel = new ColorPanel(Bar.HORIZONTAL);
    sketch_area = new SketchArea((Object) this);

	/*sketch_area.setLayout(null);
	sketch_area.textfield.resize(0,0);
	sketch_area.textfield.hide();
	sketch_area.add(sketch_area.textfield);
	*/

	panelDim = obj_panel.getObjPanelDim();
    obj_panel.reshape(0,0,panelDim.width,panelDim.height);
    setLayout(new BorderLayout(20, 20));
    add("West", obj_panel);
    add("Center", sketch_area);
    add("South", color_panel);
   
    sketch_area.reshape(41,0,440,360);
    //color_panel.reshape(0,380,440,420);

    /*obj_panel.reshape(0,0,40,360);
    sketch_area.reshape(41,0,440,360);
    color_panel.reshape(0,380,440,420);
	*/

    show();
  }

/**
 * Bridge function to process input data from the network
 *
 *@param buf buffer in bytes to hold parameters
 *@return void 
 *@exception none
 */

  public void processInData(byte[] buf) {
        sketch_area.processInData(buf);
  }


  public Insets insets()
  {
    return new Insets(0,0,0,0);
  }

  /*public Dimension minimumSize()
  {
    return new Dimension(450,500);
  }

  public Dimension preferredSize()
  {
    return minimumSize();
  }
  */

}


