Invention2.java
package npw;

import painter.SPainter;
import shapes.SCircle;
import shapes.SRectangle;
import shapes.SSquare;

import javax.swing.*;
import java.awt.*;
import java.util.Random;
import java.util.Scanner;

public class Invention2 {

    private void paintTheImage(){
        //request rectangle dimensions
        int recWidth = getNumber("Rectangle Width");
        int recHeight = getNumber("Rectangle Height");
        int nrOfRectangles = getNumber("Number of Rectangles");

        //creating npw objects and setting color
        SRectangle rectangle = new SRectangle(recHeight, recWidth);
        int recDiag = (int)rectangle.diagonal();
        SPainter painter = new SPainter("My Invention 2",recDiag, recDiag);
        painter.setColor(randomColor());

        //drawing rectangles
        int i = 0;
        while (i <= nrOfRectangles){
            if(recHeight == recWidth){
                System.out.println("That's a square not a rectangle!");
                break;
            }
            oneRotation(painter, nrOfRectangles);
            painter.draw(rectangle);
            i++;
        }
    }

    private void oneRotation(SPainter painter, int nrOfRectangles){
        painter.tr((360.0 / nrOfRectangles));
    }

    private static String getColor(String prompt) {
        String nss = JOptionPane.showInputDialog(null, prompt + "?");
        Scanner scanner = new Scanner(nss);
        return scanner.next();
    }

    private static int getNumber(String prompt) {
        String nss = JOptionPane.showInputDialog(null,prompt+"?");
        Scanner scanner = new Scanner(nss);
        return scanner.nextInt();
    }

    private static Color randomColor() {
        Random rgen = new Random();
        int r = rgen.nextInt(256);
        int g = rgen.nextInt(256);
        int b = rgen.nextInt(256);
        return new Color(r,g,b);
    }


    public Invention2()
    {
        paintTheImage();
    }

    public static void main(String[] args)
    {
        SwingUtilities.invokeLater (new Runnable(){
            public void run(){
                new Invention2();
            }
        });
    }
}