public class OOStatePainter extends java.lang.Object implements StatePainter
StatePainter
for painting OOState
instances. Painting is defined by being given a list of
OO-MDP class-wise painters and specific instance-wise painters. A class-wise painter will handle painting all
OO-MDP objects belonging to a specific OO-MDP class, except for objects that have an associated instance-wise
painter, which override any class-wise painters for the painting of the object.
Painting order goes by class-wise painters, with the order that the painters were added, and then instance-wise painters.
Modifier and Type | Class and Description |
---|---|
static class |
OOStatePainter.ObjectPainterAndClassNamePair
A pair of the name of an object class to paint, and the
ObjectPainter to
use to paint it. |
Modifier and Type | Field and Description |
---|---|
protected java.util.List<OOStatePainter.ObjectPainterAndClassNamePair> |
objectClassPainterList
Ordered list of painters for each object class
|
protected java.util.Map<java.lang.String,ObjectPainter> |
specificObjectPainters
Map of painters that define how to paint specific objects; if an object it appears in both specific and general lists, the specific painter is used
|
Constructor and Description |
---|
OOStatePainter() |
Modifier and Type | Method and Description |
---|---|
void |
addObjectClassPainter(java.lang.String className,
ObjectPainter op)
Adds a class that will paint objects that belong to a given OO-MDPclass.
|
void |
addSpecificObjectPainter(java.lang.String objectName,
ObjectPainter op)
Adds a painter that will be used to paint a specific object in states
|
void |
paint(java.awt.Graphics2D g2,
State s,
float cWidth,
float cHeight)
Paints general state information not to graphics context g2
|
protected java.util.List<OOStatePainter.ObjectPainterAndClassNamePair> objectClassPainterList
protected java.util.Map<java.lang.String,ObjectPainter> specificObjectPainters
public void addObjectClassPainter(java.lang.String className, ObjectPainter op)
className
- the name of the class that the provided painter can paintop
- the painterpublic void addSpecificObjectPainter(java.lang.String objectName, ObjectPainter op)
objectName
- the name of the object this painter is used to paintop
- the painterpublic void paint(java.awt.Graphics2D g2, State s, float cWidth, float cHeight)
StatePainter
paint
in interface StatePainter
g2
- graphics context to which the static data should be painteds
- the state to be paintedcWidth
- the width of the canvascHeight
- the height of the canvas