//Rectangle.java

/**
 * Class for drawing rectangles on the screen using keyboard
 * characters. Each character is higher than it is wide, so
 * these rectangles will look taller than you might expect.
 * Inherits getOffset, setOffset, and drawAt from the class
 * ShapeBase.
 */
public class Rectangle
    extends ShapeBase
    implements RectangleInterface
{
    private int height;
    private int width;

    public Rectangle()
    {
        super();
        height = 0;
        width = 0;
    }

    public Rectangle
    (
        int theOffset,
        int theHeight,
        int theWidth
    )
    {
        super(theOffset);
        height = theHeight;
        width = theWidth;
    }

    public void set
    (
        int newHeight,
        int newWidth
    )
    {
        height = newHeight;
        width = newWidth;
    }

    /**
     * Draws the figure at the current line.
     */
    public void drawHere()
    {
        drawHorizontalLine();
        drawSides();
        drawHorizontalLine();
    }

    private void drawHorizontalLine()
    {
        skipSpaces(getOffset());
        for (int count = 0; count < width; count++)
            System.out.print('-');
        System.out.println();
    }

    private void drawSides()
    {
        for (int count = 0; count < (height - 2); count++)
            drawOneLineOfSides();
    }

    private void drawOneLineOfSides()
    {
        skipSpaces(getOffset());
        System.out.print('|');
        skipSpaces(width - 2);
        System.out.println('|');
    }

    //Writes the indicated number of spaces.
    private static void skipSpaces
    (
        int number
    )
    {
        for (int count = 0; count < number; count++)
            System.out.print(' ');
    }
}
