|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface Decorator
Interface defining a component "decorator". Decorators allow a caller to attach additional visual effects to a component.
Decorators use a chained prepare/update model to modify the graphics in which a component is painted. The prepare() method of each decorator in a component's decorator sequence is called in reverse order before the component's paint() method is called. prepare() returns an instance of Graphics2D that is passed to prior decorators, and ultimately to the component itself. This allows decorators to modify the graphics context before it reaches the component. After the component has been painted, each decorator's update() method is then called in order to allow the decorator to further modify the resulting output.
Decorators are not restricted to painting within the component's bounds. However, they are clipped to the bounds of the component's parent. They are not clipped to their own bounds because, due to the chained painting model, it is not safe assume that a clip applied to a given decorator during the prepare phase will be valid for subsequent updates, or even for painting the component itself; though a component paints into a copy of the final prepared graphics, it must still be clipped to the intersection of its own bounds and the current clip (not the intersections of all preceding decorator prepare() calls).
Method Summary | |
---|---|
Bounds |
getBounds(Component component)
Returns the bounding area of the decorator. |
AffineTransform |
getTransform(Component component)
Returns the transformation the decorator applies to the component's coordinate space. |
Graphics2D |
prepare(Component component,
Graphics2D graphics)
Prepares the graphics context into which the component or prior decorator will paint. |
void |
update()
Updates the graphics context into which the component or prior decorator was painted. |
Method Detail |
---|
Graphics2D prepare(Component component, Graphics2D graphics)
Component.paint(Graphics2D)
; decorators are called in
descending order.
component
- graphics
-
void update()
Component.paint(Graphics2D)
; decorators are called in
ascending order.
Bounds getBounds(Component component)
component
-
AffineTransform getTransform(Component component)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |