Class AbstractGraphicsNode

java.lang.Object
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 Details

    • 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 Details

    • AbstractGraphicsNode

      protected AbstractGraphicsNode()
      Constructs a new graphics node.
  • Method Details

    • 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.