org.apache.batik.gvt
Class AbstractGraphicsNode

java.lang.Object
  extended by org.apache.batik.gvt.AbstractGraphicsNode
All Implemented Interfaces:
GraphicsNode
Direct Known Subclasses:
CompositeGraphicsNode, MultiResGraphicsNode, ProxyGraphicsNode, RasterImageNode, ShapeNode, SVGPatternElementBridge.PatternGraphicsNode, TextNode

public abstract class AbstractGraphicsNode
extends Object
implements GraphicsNode

A partial implementation of the GraphicsNode interface.


Field Summary
protected  GraphicsNodeChangeEvent changeCompletedEvent
           
protected  GraphicsNodeChangeEvent changeStartedEvent
           
protected  ClipRable clip
          The clipping filter for this graphics node.
protected  Composite composite
          The compositing operation to be used when a graphics node is painted on top of another one.
protected  WeakReference enableBackgroundGraphicsNodeRable
          The GraphicsNodeRable for this node with all filtering applied
protected  Filter filter
          The filter of this graphics node.
protected  WeakReference graphicsNodeRable
          The GraphicsNodeRable for this node.
protected  RenderingHints hints
          The rendering hints that control the quality to use when rendering this graphics node.
protected  AffineTransform inverseTransform
          The inverse transform for this node, i.e., from parent node to this node.
protected  boolean isVisible
          This flag bit indicates whether or not this graphics node is visible.
protected  EventListenerList listeners
          The listeners list.
protected  Mask mask
          The mask of this graphics node.
protected  CompositeGraphicsNode parent
          The parent of this graphics node.
protected  int pointerEventType
          Indicates how this graphics node reacts to events.
protected  RootGraphicsNode root
          The root of the GVT tree.
protected  AffineTransform transform
          The transform of this graphics node.
protected  WeakReference weakRef
          A Weak Reference to this.
 
Fields inherited from interface org.apache.batik.gvt.GraphicsNode
ALL, FILL, IDENTITY, NONE, PAINTED, STROKE, VISIBLE, VISIBLE_FILL, VISIBLE_PAINTED, VISIBLE_STROKE
 
Constructor Summary
protected AbstractGraphicsNode()
          Constructs a new graphics node.
 
Method Summary
 boolean contains(Point2D p)
          Returns true if the specified Point2D is inside the boundary of this node, false otherwise.
 void fireGraphicsNodeChangeCompleted()
           
 void fireGraphicsNodeChangeStarted()
           
 void fireGraphicsNodeChangeStarted(GraphicsNode changeSrc)
           
 void fireGraphicsNodeChangeStarted(GraphicsNodeChangeEvent changeStartedEvent)
           
 Rectangle2D getBounds()
          Returns the bounds of this node in user space.
 ClipRable getClip()
          Returns the clipping filter of this node or null if any.
 Composite getComposite()
          Returns the composite of this node or null if any.
 Filter getEnableBackgroundGraphicsNodeRable(boolean createIfNeeded)
          Returns the GraphicsNodeRable for this node.
 Filter getFilter()
          Returns the filter of this node or null if any.
 AffineTransform getGlobalTransform()
          Returns the concatenated transform of this node.
 Filter getGraphicsNodeRable(boolean createIfNeeded)
          Returns the GraphicsNodeRable for this node.
 AffineTransform getInverseTransform()
          Returns the inverse transform for this node.
 Mask getMask()
          Returns the mask of this node or null if any.
 CompositeGraphicsNode getParent()
          Returns the parent of this node or null if any.
 int getPointerEventType()
          Returns the type that describes how this graphics node reacts to events.
 RenderingHints getRenderingHints()
          Returns the rendering hints of this node or null if any.
 RootGraphicsNode getRoot()
          Returns the root of the GVT tree or null if the node is not part of a GVT tree.
 AffineTransform getTransform()
          Returns the transform of this node or null if any.
 Rectangle2D getTransformedBounds(AffineTransform txf)
          Returns the bounds of this node after applying the input transform (if any), concatenated with this node's transform (if any).
 Rectangle2D getTransformedGeometryBounds(AffineTransform txf)
          Returns the bounds of the area covered by this node, without taking any of its rendering attribute into accoun.
 Rectangle2D getTransformedPrimitiveBounds(AffineTransform txf)
          Returns the bounds of this node's primitivePaint after applying the input transform (if any), concatenated with this node's transform (if any).
 Rectangle2D getTransformedSensitiveBounds(AffineTransform txf)
          Returns the bounds of the sensitive area covered by this node, This includes the stroked area but does not include the effects of clipping, masking or filtering.
 WeakReference getWeakReference()
          Returns a canonical WeakReference to this GraphicsNode.
 boolean intersects(Rectangle2D r)
          Returns true if the interior of this node intersects the interior of a specified Rectangle2D, false otherwise.
protected  void invalidateGeometryCache()
          Invalidates the cached geometric bounds.
protected  boolean isAntialiasedClip(AffineTransform usr2dev, RenderingHints hints, Shape clip)
          Returns true if there is a clip and it should be antialiased
protected  boolean isOffscreenBufferNeeded()
          Returns true of an offscreen buffer is needed to render this node, false otherwise.
 boolean isVisible()
          Returns true if this node is visible, false otherwise.
 GraphicsNode nodeHitAt(Point2D p)
          Returns the GraphicsNode containing point p if this node or one of its children is sensitive to mouse events at p.
protected  Rectangle2D normalizeRectangle(Rectangle2D bounds)
          This method makes sure that neither the width nor height of the rectangle is zero.
 void paint(Graphics2D g2d)
          Paints this node.
 void setClip(ClipRable newClipper)
          Sets the clipping filter of this node.
 void setComposite(Composite newComposite)
          Sets the composite of this node.
 void setFilter(Filter newFilter)
          Sets the filter of this node.
 void setMask(Mask newMask)
          Sets the mask of this node.
protected  void setParent(CompositeGraphicsNode newParent)
          Sets the parent node of this graphics node.
 void setPointerEventType(int pointerEventType)
          Sets the type that describes how this graphics node reacts to events.
 void setRenderingHint(RenderingHints.Key key, Object value)
          Maps the specified key to the specified value in the rendering hints of this node.
 void setRenderingHints(Map hints)
          Copies all of the mappings from the specified Map to the rendering hints of this node.
 void setRenderingHints(RenderingHints newHints)
          Sets the rendering hints of this node.
protected  void setRoot(RootGraphicsNode newRoot)
          Sets the root node of this graphics node.
 void setTransform(AffineTransform newTransform)
          Sets the transform of this node.
 void setVisible(boolean isVisible)
          Sets if this node is visible or not depending on the specified value.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.batik.gvt.GraphicsNode
getGeometryBounds, getOutline, getPrimitiveBounds, getSensitiveBounds, primitivePaint
 

Field Detail

listeners

protected EventListenerList listeners
The listeners list.


transform

protected AffineTransform transform
The transform of this graphics node.


inverseTransform

protected AffineTransform inverseTransform
The inverse transform for this node, i.e., from parent node to this node.


composite

protected Composite composite
The compositing operation to be used when a graphics node is painted on top of another one.


isVisible

protected boolean isVisible
This flag bit indicates whether or not this graphics node is visible.


clip

protected ClipRable clip
The clipping filter for this graphics node.


hints

protected RenderingHints hints
The rendering hints that control the quality to use when rendering this graphics node.


parent

protected CompositeGraphicsNode parent
The parent of this graphics node.


root

protected RootGraphicsNode root
The root of the GVT tree.


mask

protected Mask mask
The mask of this graphics node.


filter

protected Filter filter
The filter of this graphics node.


pointerEventType

protected int pointerEventType
Indicates how this graphics node reacts to events.


graphicsNodeRable

protected WeakReference graphicsNodeRable
The GraphicsNodeRable for this node.


enableBackgroundGraphicsNodeRable

protected WeakReference enableBackgroundGraphicsNodeRable
The GraphicsNodeRable for this node with all filtering applied


weakRef

protected WeakReference weakRef
A Weak Reference to this.


changeStartedEvent

protected GraphicsNodeChangeEvent changeStartedEvent

changeCompletedEvent

protected GraphicsNodeChangeEvent changeCompletedEvent
Constructor Detail

AbstractGraphicsNode

protected AbstractGraphicsNode()
Constructs a new graphics node.

Method Detail

getWeakReference

public WeakReference getWeakReference()
Returns a canonical WeakReference to this GraphicsNode. This is suitable for use as a key value in a hash map

Specified by:
getWeakReference in interface GraphicsNode

getPointerEventType

public int getPointerEventType()
Returns the type that describes how this graphics node reacts to events.

Specified by:
getPointerEventType in interface GraphicsNode
Returns:
VISIBLE_PAINTED | VISIBLE_FILL | VISIBLE_STROKE | VISIBLE | PAINTED | FILL | STROKE | ALL | NONE

setPointerEventType

public void setPointerEventType(int pointerEventType)
Sets the type that describes how this graphics node reacts to events.

Specified by:
setPointerEventType in interface GraphicsNode
Parameters:
pointerEventType - VISIBLE_PAINTED | VISIBLE_FILL | VISIBLE_STROKE | VISIBLE | PAINTED | FILL | STROKE | ALL | NONE

setTransform

public void setTransform(AffineTransform newTransform)
Sets the transform of this node.

Specified by:
setTransform in interface GraphicsNode
Parameters:
newTransform - the new transform of this node

getTransform

public AffineTransform getTransform()
Returns the transform of this node or null if any.

Specified by:
getTransform in interface GraphicsNode

getInverseTransform

public AffineTransform getInverseTransform()
Returns the inverse transform for this node.

Specified by:
getInverseTransform in interface GraphicsNode

getGlobalTransform

public AffineTransform getGlobalTransform()
Returns the concatenated transform of this node. That is, this node's transform preconcatenated with it's parent's transforms.

Specified by:
getGlobalTransform in interface GraphicsNode

setComposite

public void setComposite(Composite newComposite)
Sets the composite of this node.

Specified by:
setComposite in interface GraphicsNode
Parameters:
newComposite - the composite of this node

getComposite

public Composite getComposite()
Returns the composite of this node or null if any.

Specified by:
getComposite in interface GraphicsNode

setVisible

public void setVisible(boolean isVisible)
Sets if this node is visible or not depending on the specified value.

Specified by:
setVisible in interface GraphicsNode
Parameters:
isVisible - If true this node is visible

isVisible

public boolean isVisible()
Returns true if this node is visible, false otherwise.

Specified by:
isVisible in interface GraphicsNode

setClip

public void setClip(ClipRable newClipper)
Description copied from interface: GraphicsNode
Sets the clipping filter of this node.

Specified by:
setClip in interface GraphicsNode
Parameters:
newClipper - the new clipping filter of this node

getClip

public ClipRable getClip()
Returns the clipping filter of this node or null if any.

Specified by:
getClip in interface GraphicsNode

setRenderingHint

public void setRenderingHint(RenderingHints.Key key,
                             Object value)
Maps the specified key to the specified value in the rendering hints of this node.

Specified by:
setRenderingHint in interface GraphicsNode
Parameters:
key - the key of the hint to be set
value - the value indicating preferences for the specified hint category.

setRenderingHints

public void setRenderingHints(Map hints)
Copies all of the mappings from the specified Map to the rendering hints of this node.

Specified by:
setRenderingHints in interface GraphicsNode
Parameters:
hints - the rendering hints to be set

setRenderingHints

public void setRenderingHints(RenderingHints newHints)
Sets the rendering hints of this node.

Specified by:
setRenderingHints in interface GraphicsNode
Parameters:
newHints - the new rendering hints of this node

getRenderingHints

public RenderingHints getRenderingHints()
Returns the rendering hints of this node or null if any.

Specified by:
getRenderingHints in interface GraphicsNode

setMask

public void setMask(Mask newMask)
Sets the mask of this node.

Specified by:
setMask in interface GraphicsNode
Parameters:
newMask - the new mask of this node

getMask

public Mask getMask()
Returns the mask of this node or null if any.

Specified by:
getMask in interface GraphicsNode

setFilter

public void setFilter(Filter newFilter)
Sets the filter of this node.

Specified by:
setFilter in interface GraphicsNode
Parameters:
newFilter - the new filter of this node

getFilter

public Filter getFilter()
Returns the filter of this node or null if any.

Specified by:
getFilter in interface GraphicsNode

getGraphicsNodeRable

public Filter getGraphicsNodeRable(boolean createIfNeeded)
Returns the GraphicsNodeRable for this node. This GraphicsNodeRable is the Renderable (Filter) before any of the filter operations have been applied.

Specified by:
getGraphicsNodeRable in interface GraphicsNode

getEnableBackgroundGraphicsNodeRable

public Filter getEnableBackgroundGraphicsNodeRable(boolean createIfNeeded)
Returns the GraphicsNodeRable for this node. This GraphicsNodeRable is the Renderable (Filter) after all of the filter operations have been applied.

Specified by:
getEnableBackgroundGraphicsNodeRable in interface GraphicsNode

paint

public void paint(Graphics2D g2d)
Paints this node.

Specified by:
paint in interface GraphicsNode
Parameters:
g2d - the Graphics2D to use

isOffscreenBufferNeeded

protected boolean isOffscreenBufferNeeded()
Returns true of an offscreen buffer is needed to render this node, false otherwise.


isAntialiasedClip

protected boolean isAntialiasedClip(AffineTransform usr2dev,
                                    RenderingHints hints,
                                    Shape clip)
Returns true if there is a clip and it should be antialiased


fireGraphicsNodeChangeStarted

public void fireGraphicsNodeChangeStarted(GraphicsNode changeSrc)

fireGraphicsNodeChangeStarted

public void fireGraphicsNodeChangeStarted()

fireGraphicsNodeChangeStarted

public void fireGraphicsNodeChangeStarted(GraphicsNodeChangeEvent changeStartedEvent)

fireGraphicsNodeChangeCompleted

public void fireGraphicsNodeChangeCompleted()

getParent

public CompositeGraphicsNode getParent()
Returns the parent of this node or null if any.

Specified by:
getParent in interface GraphicsNode

getRoot

public RootGraphicsNode getRoot()
Returns the root of the GVT tree or null if the node is not part of a GVT tree.

Specified by:
getRoot in interface GraphicsNode

setRoot

protected void setRoot(RootGraphicsNode newRoot)
Sets the root node of this graphics node.

Parameters:
newRoot - the new root node of this node

setParent

protected void setParent(CompositeGraphicsNode newParent)
Sets the parent node of this graphics node.

Parameters:
newParent - the new parent node of this node

invalidateGeometryCache

protected void invalidateGeometryCache()
Invalidates the cached geometric bounds. This method is called each time an attribute that affects the bounds of this node changed.


getBounds

public Rectangle2D getBounds()
Returns the bounds of this node in user space. This includes primitive paint, filtering, clipping and masking.

Specified by:
getBounds in interface GraphicsNode

getTransformedBounds

public Rectangle2D getTransformedBounds(AffineTransform txf)
Returns the bounds of this node after applying the input transform (if any), concatenated with this node's transform (if any).

Specified by:
getTransformedBounds in interface GraphicsNode
Parameters:
txf - the affine transform with which this node's transform should be concatenated. Should not be null.

getTransformedPrimitiveBounds

public Rectangle2D getTransformedPrimitiveBounds(AffineTransform txf)
Returns the bounds of this node's primitivePaint after applying the input transform (if any), concatenated with this node's transform (if any).

Specified by:
getTransformedPrimitiveBounds in interface GraphicsNode
Parameters:
txf - the affine transform with which this node's transform should be concatenated. Should not be null.

getTransformedGeometryBounds

public Rectangle2D getTransformedGeometryBounds(AffineTransform txf)
Returns the bounds of the area covered by this node, without taking any of its rendering attribute into accoun. That is, exclusive of any clipping, masking, filtering or stroking, for example. The returned value is transformed by the concatenation of the input transform and this node's transform.

Specified by:
getTransformedGeometryBounds in interface GraphicsNode
Parameters:
txf - the affine transform with which this node's transform should be concatenated. Should not be null.

getTransformedSensitiveBounds

public Rectangle2D getTransformedSensitiveBounds(AffineTransform txf)
Returns the bounds of the sensitive area covered by this node, This includes the stroked area but does not include the effects of clipping, masking or filtering. The returned value is transformed by the concatenation of the input transform and this node's transform.

Specified by:
getTransformedSensitiveBounds in interface GraphicsNode
Parameters:
txf - the affine transform with which this node's transform should be concatenated. Should not be null.

contains

public boolean contains(Point2D p)
Returns true if the specified Point2D is inside the boundary of this node, false otherwise.

Specified by:
contains in interface GraphicsNode
Parameters:
p - the specified Point2D in the user space

intersects

public boolean intersects(Rectangle2D r)
Returns true if the interior of this node intersects the interior of a specified Rectangle2D, false otherwise.

Specified by:
intersects in interface GraphicsNode
Parameters:
r - the specified Rectangle2D in the user node space

nodeHitAt

public GraphicsNode nodeHitAt(Point2D p)
Returns the GraphicsNode containing point p if this node or one of its children is sensitive to mouse events at p.

Specified by:
nodeHitAt in interface GraphicsNode
Parameters:
p - the specified Point2D in the user space

normalizeRectangle

protected Rectangle2D normalizeRectangle(Rectangle2D bounds)
This method makes sure that neither the width nor height of the rectangle is zero. But it tries to make them very small relatively speaking.



Copyright © 2008 Apache Software Foundation. All Rights Reserved.