com.explodingpixels.painter
Class ButtonStatePainter<B extends AbstractButton>

java.lang.Object
  extended by com.explodingpixels.painter.ButtonStatePainter<B>
All Implemented Interfaces:
Painter<B>

public class ButtonStatePainter<B extends AbstractButton>
extends Object
implements Painter<B>

A Painter that can be used to paint the various states of a button. This painter will delegate to the supplied painters based on the current state of the button. That is, if the button is being "rolled over", the rolloverPainter will be called; if the button is pressed, then the pressedPainter will be called, etc.


Nested Class Summary
static class ButtonStatePainter.DummyPainter
          An implementation of Painter that does no painting.
 
Constructor Summary
ButtonStatePainter(Painter<Component> defaultPainter)
          Creates a painter that will always use the given ButtonStatePainter.DummyPainter to paint the button.
ButtonStatePainter(Painter<Component> defaultPainter, Painter<Component> rolloverPainter, Painter<Component> pressedPainter, Painter<Component> selectedPainter)
          Creates a painter that will delegate to the given painters based on the current state of the button.
 
Method Summary
 void paint(Graphics2D g, B button, int width, int height)
          Renders to the given Graphics2D.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ButtonStatePainter

public ButtonStatePainter(Painter<Component> defaultPainter)
Creates a painter that will always use the given ButtonStatePainter.DummyPainter to paint the button.

Parameters:
defaultPainter - the Painter to use to paint the button.

ButtonStatePainter

public ButtonStatePainter(Painter<Component> defaultPainter,
                          Painter<Component> rolloverPainter,
                          Painter<Component> pressedPainter,
                          Painter<Component> selectedPainter)
Creates a painter that will delegate to the given painters based on the current state of the button.

Parameters:
defaultPainter - the ButtonStatePainter.DummyPainter to use when the button has no specific state.
rolloverPainter - the Painter to use when the button is being "rolled over".
pressedPainter - the Painter to use when the button is being pressed.
selectedPainter - the Painter to use when the button has been selected.
Method Detail

paint

public void paint(Graphics2D g,
                  B button,
                  int width,
                  int height)
Description copied from interface: Painter
Renders to the given Graphics2D. The supplied graphics context may be modified - it's state need not be restored upon completion of painting.

Specified by:
paint in interface Painter<B extends AbstractButton>
Parameters:
g - the graphics context to paint into. It's state need not be restored. Will not be null.
button - the object to be painted.
width - the width within the object to paint.
height - the height within the object to paint.