ballwar.model.paint
Class SquarePaintStrategy

java.lang.Object
  extended by ballwar.model.paint.SquarePaintStrategy
All Implemented Interfaces:
IPaintStrategy

public class SquarePaintStrategy
extends Object
implements IPaintStrategy

Paint strategy that paints a filled square with the Ball's radius. This functionality is duplicated by the RectanglePaintStrategy. The class demonstrates a direct implementation of IPaintStrategy.


Field Summary
private  AffineTransform at
          The AffineTransformed used for internal calculations.
private  Rectangle rect
          Unit sized rectangle used as a prototype
 
Fields inherited from interface ballwar.model.IPaintStrategy
NullObject
 
Constructor Summary
SquarePaintStrategy()
          No parameter constructor that creates a square with sides of 2 pixels (1 pixel radius) located at the origin.
SquarePaintStrategy(AffineTransform at, int side, Point loc)
          Constructor that allows one to create the prototype square of arbitrary side and location.
 
Method Summary
 void init(Ball context)
          By default, do nothing for initialization.
 void paint(Graphics g, Ball host)
          Paints on the given graphics context using the color, scale and direction provided by the host.
 void paintXfrm(Graphics g, Ball host, AffineTransform at)
          Paints a transformed square, as per the given AffineTransform Uses color already set in Graphics context
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

at

private AffineTransform at
The AffineTransformed used for internal calculations.


rect

private Rectangle rect
Unit sized rectangle used as a prototype

Constructor Detail

SquarePaintStrategy

public SquarePaintStrategy()
No parameter constructor that creates a square with sides of 2 pixels (1 pixel radius) located at the origin. Instantiates a new AffineTransform for internal use.


SquarePaintStrategy

public SquarePaintStrategy(AffineTransform at,
                           int side,
                           Point loc)
Constructor that allows one to create the prototype square of arbitrary side and location. The AffineTransform is externally supplied.

Parameters:
at - The AffineTransform to use for internal calculations
side - The half-width (x-radius) of the square
loc - The location of the center of the square.
Method Detail

paint

public void paint(Graphics g,
                  Ball host)
Paints on the given graphics context using the color, scale and direction provided by the host. This is done by setting up the AffineTransform to scale then translate. Calls paintXfrm to actually perform the painting, using the set up transform. Calls paintCfg just before calling paintXfrm param g The Graphics context that will be paint on param host The host Ball that the required information will be pulled from.

Specified by:
paint in interface IPaintStrategy
Parameters:
g - The graphics context to draw upon.
host - The host ball.

paintXfrm

public void paintXfrm(Graphics g,
                      Ball host,
                      AffineTransform at)
Paints a transformed square, as per the given AffineTransform Uses color already set in Graphics context

Specified by:
paintXfrm in interface IPaintStrategy
Parameters:
g - The Graphics context to paint on
host - The Ball host
at - the AffineTransform to use

init

public void init(Ball context)
By default, do nothing for initialization.

Specified by:
init in interface IPaintStrategy