PumpItUp.java
/* 
 * Program to paint a blue dot in the context of the Nonrepresentational 
 * Painting World, NPW. 
 */

package npw;

import java.awt.Color;
import javax.swing.SwingUtilities;
import painter.SPainter;
import shapes.SCircle;
import shapes.SSquare;

public class PumpItUp {
    // THE SOLUTION TO THE BLUE DOT PROBLEM
    private void paintTheImage() {
        SPainter painter = new SPainter("Pump It Up",600,600);
        SSquare square = new SSquare(150);
        paintYellowSquare(painter, square);
        paintRedSquares(painter,square);
        paintBlueSquares(painter,square);
        paintGraySquares(painter,square);

    }

    private void paintYellowSquare(SPainter painter, SSquare square) {
        painter.setColor(Color.YELLOW);
        painter.paint(square);
    }

    private void paintGraySquares(SPainter painter, SSquare square) {
        painter.setColor(Color.GRAY);
        painter.mlt(150);
        painter.paint(square);
        painter.moveToCenter();
        painter.mlt(-150);
        painter.paint(square);
        painter.moveToCenter();
        painter.mfd(150);
        painter.paint(square);
        painter.moveToCenter();
        painter.mbk(150);
        painter.paint(square);
        painter.moveToCenter();
    }

    private void paintBlueSquares(SPainter painter, SSquare square) {
        painter.setColor(Color.blue);
        painter.mbk(150); painter.mlt(150);
        painter.paint(square);
        painter.mrt(300);
        painter.paint(square);
        painter.moveToCenter();
    }

    private void paintRedSquares(SPainter painter, SSquare square) {
        painter.setColor(Color.red);
        painter.mfd(150);
        painter.mrt(150);
        painter.paint(square);
        painter.mlt(300);
        painter.paint(square);
        painter.moveToCenter();

    }

    // REQUIRED INFRASTRUCTURE
    public PumpItUp(){
        paintTheImage();
    }
    public static void main(String[] args){
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new PumpItUp();
            }
        });
    }
}