//
//  STARSCONTROLLER0.JAVA  file.
//
//
//



import java.awt.*;
import java.applet.*;
import java.awt.event.*;


public class StarsController1 extends Applet implements MouseListener, KeyListener
	{
	private Star1 leftStar;
	private Star1 rightStar;

	private AButton bigger, smaller, more, fewer, quit, reset;

	public StarsController1()
		{
        leftStar = new Star1(50,150,5,50);
        rightStar = new Star1(100, 300, 11,100);
		bigger = new AButton("Bigger", 320, 20);
		smaller = new AButton("Smaller", 320, 50);
		more = new AButton("More", 320, 80);
		fewer = new AButton("Fewer", 320, 110);
		quit = new AButton("QUIT", 320, 140);
		reset = new AButton("RESET", 320, 170);
		}

    public void init ( )  //  NEW METHOD
	{
		addMouseListener( this );
		addKeyListener( this );
		requestFocus( );
	}

	public void paint(Graphics g)
		{
		g.drawString("Commands: b-bigger, s-smaller, m-more, f-fewer points", 20, 20);

		//  Paint the star.

		leftStar.paint(g);
		rightStar.paint(g);

		//  Paint the buttons.

		bigger.paint(g);
		smaller.paint(g);
		more.paint(g);
		fewer.paint(g);
		quit.paint(g);
		reset.paint(g);
		}

	// Mouse Events

	public void mouseClicked( MouseEvent e) {}
	public void mouseEntered( MouseEvent e) {}
	public void mouseExited( MouseEvent e) {}
	public void mouseReleased( MouseEvent e) {}
    public void mousePressed(MouseEvent me)
        {
             int x = me.getX(), y = me.getY();

             if(leftStar.inside(x,y))
                 leftStar.toggle();

              else if(rightStar.inside(x,y))
                 rightStar.toggle();

			    else if (bigger.inside(x,y))
					{
						leftStar.bigger();
						rightStar.bigger();
					}

			     else if (smaller.inside(x,y))
					{
						leftStar.smaller();
						rightStar.smaller();
					}

			     else if (more.inside(x,y))
		           {
					leftStar.more();
					rightStar.more();
				   }

			    else if (fewer.inside(x,y))
					{
						leftStar.fewer();
						rightStar.fewer();
					}

			    else
			      {
					  leftStar.unselect();
					  rightStar.unselect();
				  }


             repaint();
        }
	// Key Events

	public void keyTyped( KeyEvent e ) { }
	public void keyReleased( KeyEvent e ) { }

	public void keyPressed(KeyEvent e)
		{
		char key = e.getKeyChar();
		if (key == 'b')
		{
		leftStar.bigger();
		rightStar.bigger();
		}
		else if (key == 's')
		{
		leftStar.smaller();
		rightStar.smaller();
		}
		else if (key == 'm')
		{
		leftStar.more();
		rightStar.more();
		}
		else if (key == 'f')
		{
		leftStar.fewer();
		rightStar.fewer();
		}
		repaint();
		}
	}



	class AButton
	   {
	    public final int WIDTH = 72, HEIGHT = 20;

	    private String name;
	    private int left, top, x;

	    public AButton(String theName,
	       int theLeft, int theTop)
	       {
	        name = theName;
	        left = theLeft;
	        top = theTop;
	       }

	       public void paint(Graphics g)
	       {
	        g.setColor(Color.black);
	        g.fillRoundRect(left+2, top+2, WIDTH, HEIGHT, 18, 18);
	        g.setColor(Color.white);
	        g.fillRoundRect(left, top, WIDTH, HEIGHT, 18, 18);
	        g.setColor(Color.black);
	        g.drawString(name, left + 5, top + 14);
	        g.drawRoundRect(left, top, WIDTH, HEIGHT, 18, 18);
	       }

	       public boolean inside(int x, int y)
	       {
	        return (left <= x && x <= left + WIDTH && top <= y &&
	            y <= top+HEIGHT);
           }

           public String toString()
           {
            return "AButton: <" + name + "> at ("
                    + left + ", " + top +")";
           }
       }