/*************************************************
 * 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.lang.*;
import java.awt.*;
import MenuWindow;
import MyLabel;

/** Class for implementing the user interface of the popup window
	for showing some statistical values, such as user login name,
	hostname, IP address, number of participating members, number
	of active senders within a particular transmission interval and
	lastly the transmission interval itself. **/

public class StatisticsWindow extends Frame {
	MenuWindow main_parent;
	MyLabel num_activeSenders;
	MyLabel num_members;
	MyLabel we_sent;
	MyLabel actual_interval;
	MyLabel tran_interval;
	MyLabel	login_name;
	MyLabel hostname;
	MyLabel IP_address;
	MyLabel members;

	/** Constructor function **/
	public StatisticsWindow(String title, 
				MenuWindow parent) {
		super(title);
		this.main_parent = parent;
		GridBagLayout gridbag = new GridBagLayout();
		setLayout(gridbag);

		num_activeSenders = new MyLabel(gridbag, "   ", 
				Label.LEFT, "REMAINDER", 10, 5, 0, 10);

		/* 8 spaces for interval labels */
		actual_interval = new MyLabel(gridbag, "        ", 
				Label.LEFT, "REMAINDER", 10, 5, 0, 10);
		tran_interval = new MyLabel(gridbag, "        ", 
				Label.LEFT, "REMAINDER", 10, 5, 0, 10);

		/* 12 spaces for names label */
		login_name = new MyLabel(gridbag, "            ", 
				Label.LEFT, "REMAINDER", 10, 5, 0, 10);
		hostname = new MyLabel(gridbag, "                          ", 
				Label.LEFT, "REMAINDER", 10, 5, 0, 10);

		/* 14 spaces for IP address label */
		IP_address = new MyLabel(gridbag, "                    ", 
				Label.LEFT, "REMAINDER", 10, 5, 0, 10);

		members = new MyLabel(gridbag, "   ", 
				Label.LEFT, "REMAINDER", 10, 5, 0, 10);

		/* adds labels for login name */
		add(new MyLabel(gridbag, "Login Name :", 
				Label.LEFT, "RELATIVE", 10, 10, 0, 5));
		add(login_name);

		/* adds labels for hostname */
		add(new MyLabel(gridbag, "Hostname :", 
				Label.LEFT, "RELATIVE", 10, 10, 0, 5));
		add(hostname);

		/* adds labels for IP address */
		add(new MyLabel(gridbag, "IP Address :", 
				Label.LEFT, "RELATIVE", 10, 10, 0, 5));
		add(IP_address);

		/* adds labels for number of participants */
		add(new MyLabel(gridbag, "Participants :", 
				Label.LEFT, "RELATIVE", 10, 10, 0, 5));
		add(members);

		/* adds labels for number of active senders */
		add(new MyLabel(gridbag, "Active senders :", 
				Label.LEFT, "RELATIVE", 10, 10, 0, 5));
		add(num_activeSenders);
		
		/* adds labels for actual interval */
		/*add(new MyLabel(gridbag, "actual interval :", 
				Label.LEFT, "RELATIVE", 10, 10, 0, 5));
		add(actual_interval);
		*/

		/* adds labels for transmission interval */
		add(new MyLabel(gridbag, "Interval :", 
				Label.LEFT, "RELATIVE", 10, 10, 0, 5));
		add(tran_interval);
		resize( 400, 300);

	}

	/** To trap user entries and udpate accordingly into the UserInfo
		class **/
	public void update() {
		login_name.setText( 
			(main_parent.parent.user_info.userAcctName));
		hostname.setText( 
			(main_parent.parent.user_info.hostName));
		IP_address.setText( 
			(main_parent.parent.user_info.ipAddr));
		members.setText( 
			(new Integer(main_parent.state_info.members)).toString() );
		num_activeSenders.setText( 
			(new Integer(main_parent.state_info.activeSenders)).toString() );
		actual_interval.setText( 
			(new Double(main_parent.state_info.actual_interval)).toString() );
		tran_interval.setText( 
			(new Double(main_parent.state_info.tran_interval)).toString() );

	}
}



