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

/* Simple class for implementing much of the controls used in 
	this application. Applies only to controls implemented on 
	GridBagLayout */

/** Class for implementing own Menu Item **/
class MyMenuItem extends MenuItem {
	public MyMenuItem(String arg) {
		super(arg);
		setFont(new Font("TimesRoman", Font.PLAIN, 18));
	}
}

/** Class for implementing own Menu **/
class MyMenu extends Menu {
	public MyMenu(String arg) {
		super(arg);
		setFont(new Font("TimesRoman", Font.PLAIN, 18));
	}
}

/** A class that has to be called by all controls , other than Menu
	and Menu Item, for setting constraints on the GridBagLayout **/
class setConstraints {
	public setConstraints(GridBagLayout gridbag, GridBagConstraints c,
						String gridwidth, int top, int left, 
						int bottom, int right) {
							
		c.fill = GridBagConstraints.BOTH;
		if (gridwidth.equals("REMAINDER"))
			c.gridwidth = GridBagConstraints.REMAINDER;
		else 
		if (gridwidth.equals("RELATIVE"))
			c.gridwidth = GridBagConstraints.RELATIVE;
		else
			c.gridwidth = (new Integer(gridwidth)).intValue();
		c.insets = new Insets(top, left, bottom, right);	
	}
}

/** Class used for implementing text entry field of the Chat Tool **/
class MyTextBox extends TextField {
	public MyTextBox(GridBagLayout gridbag, int cols, String gridwidth, 
						int top, int left, int bottom, int right) {
		super(cols);
		GridBagConstraints c = new GridBagConstraints();
		setConstraints constraints = new setConstraints(gridbag,
							c, gridwidth, top, left, bottom, right);
		gridbag.setConstraints(this, c);
	}
}

/** Class used for implementing text display area of the Chat Tool **/
class MyTextArea extends TextArea{
	public MyTextArea(GridBagLayout gridbag, int rows, int cols, 
						String gridwidth, int top, int left, 
						int bottom, int right) {
		super(rows, cols);
		GridBagConstraints c = new GridBagConstraints();
		setConstraints constraints = new setConstraints(gridbag,
							c, gridwidth, top, left, bottom, right);
		gridbag.setConstraints(this, c);
	}
}
		
/** Class used for implementing the user list of the User Panel **/
class MyList extends List{
	public MyList(GridBagLayout gridbag, int rows, boolean MultipleSelection, 
						String gridwidth, int top, int left, 
						int bottom, int right) {
		super(rows, MultipleSelection);
		GridBagConstraints c = new GridBagConstraints();
		setConstraints constraints = new setConstraints(gridbag,
							c, gridwidth, top, left, bottom, right);
		gridbag.setConstraints(this, c);
	}
}

/** Class used for implementing all labels on the user interface **/
class MyLabel extends Label {
	public MyLabel(GridBagLayout gridbag, String label, int alignment, 
					String gridwidth, int top, int left, int bottom, int right) {
		super(label, alignment);
		GridBagConstraints c = new GridBagConstraints();
		setConstraints constraints = new setConstraints(gridbag,
							c, gridwidth, top, left, bottom, right);
		gridbag.setConstraints(this, c);
	}
}		

/** Class used for implementing all buttons on the user interface **/
class MyButton extends Button {
	public MyButton(GridBagLayout gridbag, String text, 
			String gridwidth, int top, int left, 
			int bottom, int right) {
		super(text);
		GridBagConstraints c = new GridBagConstraints();		
		setConstraints constraints = new setConstraints(gridbag,
							c, gridwidth, top, left, bottom, right);
		gridbag.setConstraints(this, c);		
	}
}
