import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import producer.*;

public class consumer extends Applet implements Runnable {

  Font F = new Font("TimesRoman", Font.BOLD, 18);
  TextArea  conText= new TextArea(5,10);
  Button conButton= new Button("C Start/Stop");
  Thread conT;
  boolean suspendc;
  String msgC="started";
  producer prod;

  int n;

  String consumerName = null;

  public void init() {
	// Now read input parameters from the HTML page
	try {
	  consumerName = getParameter("consumerName");
	} catch (Exception E) { }
	// create a producer instance
	prod = (producer)getAppletContext().getApplet("Pro");
	// Screen layout
	add(conText);
	add(conButton);
  } // init

  public void run() {
	while (true) {
	  if (!suspendc) { // if this consumer is not suspended
					   // it should get a value from producer
		n=prod.get();  // get value from producer
		conText.appendText("  "+n+"\n"); // display the value
	  }
	}
  } // run method

  public void start() {
	if (conT == null) {
	  conT = new Thread(this);
	  conT.start();
	}
  }   // start method

  public void stop() {
	if (conT != null) {
	  conT.stop();
	  conT=null;
	}
  } // stop method

  // Now handle button events for consumers
  public boolean action(Event evtObj, Object arg) {
	if(evtObj.target instanceof Button) {
	  if(arg.equals("C Start/Stop")) {
		if (suspendc)  { // suspended so start it again
		  msgC= "started";
		  suspendc=false;
		  repaint();
		}
		else { // started so now suspend it
		  msgC="suspended";
		  suspendc=true;
		  repaint();
		}
	  }
	  return true;
	}
	return false;
  }

  public void paint(Graphics g) {
	g.setFont(F);
	g.drawString("CONSUMER: " + consumerName,10,115);
	g.drawString("This consumer is "+msgC,10,150);
  }

} // end of applet