//-------------------- DrawShape (Step 1) ---------------------//

import javabook.*;

 /**
 * This class is the top-level controller object for managing
 * all other objects in the program.
 *
 * @author Dr. Caffeine
 *
 */
class DrawShape
{

//--------------------------------
//  Data Members
//--------------------------------

    /**
     * The main window of the program
     */
    private MainWindow mainWindow;
         
    /**
     * OutputBox for displaying the test messages
     */
    private OutputBox outputBox;

 

//--------------------------------
//  Constructors
//--------------------------------

    /**
     * Default constructor. The default window title is "Drawing Shape".
     */
    public DrawShape( )
    {
      mainWindow = new MainWindow( "Drawing Shape" );
      outputBox  = new OutputBox( mainWindow );
    
      mainWindow.setVisible( true );
       outputBox.setVisible( true );
    }

//-------------------------------------------------
//    Public Methods:
// 
//      void    start    (    )
//
//------------------------------------------------
    /**
     * Top-level method that calls other private methods
     * to draw the selected shape in user-specified
     * position, size, and color.   
     */
    public void start( )
    {
        describeProgram();
        selectShape();
        selectColor();
        selectDimension();
        draw();
    }

//-------------------------------------------------
//    Private Methods:
// 
//    void    describeProgram   (      )
//    void    draw              (      )
//    void    selectColor       (      )
//    void    selectDimension   (      )
//    void    selectShape       (      )
//
//------------------------------------------------
  
    /**
     * Provides a brief explanation of the program to the user.   
     *
     */    
    private void describeProgram( )
    {
        outputBox.printLine("Inside describeProgram");
    }


    /**  
     * Draws the selected shape in a chosen position, size,
     * and color.
     *
     */
    private void draw( )
    {
        outputBox.printLine("Inside draw");
    }
    
    
    /**
     * Lets the user select the color from a ListBox.   
     */
    private void selectColor( )
    {
        outputBox.printLine("Inside selectColor");
    }
    
  
    /**
     * Lets the user select the size and position using an InputBox.   
     *
     */
    private void selectDimension( )
    {
        outputBox.printLine("Inside selectDimension");
    }
    
    /**
     * Lets the user select the shape from a ListBox.   
     *
     */
    private void selectShape( )
    {
        outputBox.printLine("Inside selectShape");
    }
}