|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectsim.portrayal.FieldPortrayal
sim.portrayal.FieldPortrayal2D
Superclass of all Field Portrayals in 2D. Implements default versions of the necessary methods, which you should feel free to override (especially portray, hit, and draw!).
The default version of the setField(...) method sets the field without checking to see if it's a valid field or not; you'll want to override this to check. Also, the default version of getDefaultPortrayal() returns an empty SimplePortrayal: you'll might want to override that as well. These defaults enable you to use FieldPortrayal2D as an "empty field portrayal" to be attached to a Display2D and draw arbitrary things when its draw(...) method is called. In that case, all you need to do is override the draw(...) method and you're set.
The default versions of hitObjects and draw call a protected but empty method called hitOrDraw. It's very common that a field's hitObjects and draw methods will be identical save for a single line which calls hitObjects or draw on an underlying SimplePortrayal. So most fields unify both methods into this single method and unify the line as something like this:
if (graphics == null) { if (portrayal.hitObject(portrayedObject, newinfo)) putInHere.add(getWrapper(portrayedObject, portrayedObjectLocation)); } else portrayal.draw(portrayedObject, graphics, newinfo);
...where getWrapper(...) returns a LocationWrapper appropriate to the Field.
Nested Class Summary |
Nested classes inherited from class sim.portrayal.FieldPortrayal |
FieldPortrayal.CustomInspector |
Field Summary | |
static int |
DEFAULT
Default buffering: let the program decide on its own (typically in a platform-dependent fashion) |
static int |
DONT_USE_BUFFER
Don't use a buffer |
static int |
USE_BUFFER
Use a buffer |
Fields inherited from class sim.portrayal.FieldPortrayal |
classPortrayals, dirtyField, field, immutableField, portrayalForAll, portrayalForNull, portrayalForRemainder, portrayals |
Constructor Summary | |
FieldPortrayal2D()
|
Method Summary | |
void |
draw(java.lang.Object object,
java.awt.Graphics2D graphics,
DrawInfo2D info)
Draws the field with its origin at [info.draw.x,info.draw.y], relative to the scaled coordinate system defined by [info.draw.width,info.draw.height]. |
int |
getBuffering()
Returns whether or not the FieldPortrayal2D will use a buffering "trick" to draw quickly. |
Portrayal |
getDefaultPortrayal()
Should return a portrayal which can portray any object regardless of whether it's valid or not |
void |
getSelectedObjects(Bag putInHere)
Adds to the Bag LocationWrappers of all selected objects. |
void |
hitObjects(DrawInfo2D range,
Bag putInHere)
Adds to the provided Bag LocationWrappers for any objects which overlap the provided hit range. |
protected void |
hitOrDraw(java.awt.Graphics2D graphics,
DrawInfo2D info,
Bag putInHere)
Instead of overriding the draw and hitObjects methods, you can optionally override this method to provide both the draw(...) and hitObjects(...) functionality in a single method, as it's common that these two methods have nearly identical code. |
void |
move(Bag locationWrappers,
java.awt.geom.Dimension2D distance)
Moves the Bag of LocationWrappers by the provided amount. |
void |
setBuffering(int val)
Sets whether or not the FieldPortrayal2D will use a buffering "trick" to draw quickly. |
void |
setField(java.lang.Object field)
Sets the field. |
void |
setSelected(Bag locationWrappers,
boolean selected)
Selects or deselects all of the provided objects. |
Methods inherited from class sim.portrayal.FieldPortrayal |
getDefaultNullPortrayal, getField, getInspector, getName, getPortrayalForAll, getPortrayalForNull, getPortrayalForObject, getPortrayalForRemainder, isImmutableField, setImmutableField, setPortrayalForAll, setPortrayalForClass, setPortrayalForNull, setPortrayalForObject, setPortrayalForRemainder, setSelected |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface sim.portrayal.Portrayal |
getInspector, getName, setSelected |
Field Detail |
public static final int DEFAULT
public static final int USE_BUFFER
public static final int DONT_USE_BUFFER
Constructor Detail |
public FieldPortrayal2D()
Method Detail |
public void draw(java.lang.Object object, java.awt.Graphics2D graphics, DrawInfo2D info)
draw
in interface Portrayal2D
public void hitObjects(DrawInfo2D range, Bag putInHere)
protected void hitOrDraw(java.awt.Graphics2D graphics, DrawInfo2D info, Bag putInHere)
public Portrayal getDefaultPortrayal()
FieldPortrayal
getDefaultPortrayal
in class FieldPortrayal
public void setField(java.lang.Object field)
FieldPortrayal
setField
in class FieldPortrayal
public void getSelectedObjects(Bag putInHere)
public void setSelected(Bag locationWrappers, boolean selected)
public void move(Bag locationWrappers, java.awt.geom.Dimension2D distance)
public int getBuffering()
public void setBuffering(int val)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |