Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.apache.batik.ext.awt.g2d
Class GraphicContext  view GraphicContext download GraphicContext.java

java.lang.Object
  extended byorg.apache.batik.ext.awt.g2d.GraphicContext
All Implemented Interfaces:
java.lang.Cloneable

public class GraphicContext
extends java.lang.Object
implements java.lang.Cloneable

Handles the attributes in a graphic context:
+ Composite
+ Font
+ Paint
+ Stroke
+ Clip
+ RenderingHints
+ AffineTransform

Version:
$Id: GraphicContext.java,v 1.10 2005/04/02 14:26:09 deweese Exp $

Field Summary
protected  java.awt.Color background
          Current background color.
protected  java.awt.Shape clip
          Current clip
protected  java.awt.Composite composite
          Current Composite
protected  java.awt.geom.AffineTransform defaultTransform
          Default Transform to be used for creating FontRenderContext.
protected  java.awt.Font font
          Current Font
protected  java.awt.Color foreground
          Current foreground color
protected  java.awt.RenderingHints hints
          Current set of RenderingHints
protected  java.awt.Paint paint
          Current Paint
protected  java.awt.Stroke stroke
          Current Stroke
protected  java.awt.geom.AffineTransform transform
          Current AffineTransform.
protected  java.util.Vector transformStack
          Transform stack
protected  boolean transformStackValid
          Defines whether the transform stack is valide or not.
 
Constructor Summary
GraphicContext()
          Default constructor
GraphicContext(java.awt.geom.AffineTransform defaultDeviceTransform)
           
 
Method Summary
 void addRenderingHints(java.util.Map hints)
          Sets the values of an arbitrary number of preferences for the rendering algorithms.
 void clip(java.awt.Shape s)
          Intersects the current Clip with the interior of the specified Shape and sets the Clip to the resulting intersection.
 void clipRect(int x, int y, int width, int height)
          Intersects the current clip with the specified rectangle.
 java.lang.Object clone()
          This method may be called to create a new copy of the Object.
 java.awt.Color getBackground()
          Returns the background color used for clearing a region.
 java.awt.Shape getClip()
          Gets the current clipping area.
 java.awt.Rectangle getClipBounds()
          Returns the bounding rectangle of the current clipping area.
 java.awt.Color getColor()
          Gets this graphics context's current color.
 java.awt.Composite getComposite()
          Returns the current Composite in the Graphics2D context.
 java.awt.Font getFont()
          Gets the current font.
 java.awt.font.FontRenderContext getFontRenderContext()
          Get the rendering context of the Font within this Graphics2D context.
 java.awt.Paint getPaint()
          Returns the current Paint of the Graphics2D context.
 java.lang.Object getRenderingHint(java.awt.RenderingHints.Key hintKey)
          Returns the value of a single preference for the rendering algorithms.
 java.awt.RenderingHints getRenderingHints()
          Gets the preferences for the rendering algorithms.
 java.awt.Stroke getStroke()
          Returns the current Stroke in the Graphics2D context.
 java.awt.geom.AffineTransform getTransform()
          Returns a copy of the current Transform in the Graphics2D context.
 TransformStackElement[] getTransformStack()
           
protected  void invalidateTransformStack()
          Marks the GraphicContext's isNewTransformStack to true as a memento that the current transform stack was reset since it was last read.
 boolean isTransformStackValid()
          Checks the status of the transform stack
 void rotate(double theta)
          Concatenates the current Graphics2D Transform with a rotation transform.
 void rotate(double theta, double x, double y)
          Concatenates the current Graphics2D Transform with a translated rotation transform.
 void scale(double sx, double sy)
          Concatenates the current Graphics2D Transform with a scaling transformation Subsequent rendering is resized according to the specified scaling factors relative to the previous scaling.
 void setBackground(java.awt.Color color)
          Sets the background color for the Graphics2D context.
 void setClip(int x, int y, int width, int height)
          Sets the current clip to the rectangle specified by the given coordinates.
 void setClip(java.awt.Shape clip)
          Sets the current clipping area to an arbitrary clip shape.
 void setColor(java.awt.Color c)
          Sets this graphics context's current color to the specified color.
 void setComposite(java.awt.Composite comp)
          Sets the Composite for the Graphics2D context.
 void setFont(java.awt.Font font)
          Sets this graphics context's font to the specified font.
 void setPaint(java.awt.Paint paint)
          Sets the Paint attribute for the Graphics2D context.
 void setRenderingHint(java.awt.RenderingHints.Key hintKey, java.lang.Object hintValue)
          Sets the value of a single preference for the rendering algorithms.
 void setRenderingHints(java.util.Map hints)
          Replaces the values of all preferences for the rendering algorithms with the specified hints.
 void setStroke(java.awt.Stroke s)
          Sets the Stroke for the Graphics2D context.
 void setTransform(java.awt.geom.AffineTransform Tx)
          Sets the Transform in the Graphics2D context.
 void shear(double shx, double shy)
          Concatenates the current Graphics2D Transform with a shearing transform.
 void transform(java.awt.geom.AffineTransform Tx)
          Composes an AffineTransform object with the Transform in this Graphics2D according to the rule last-specified-first-applied.
 void translate(double tx, double ty)
          Concatenates the current Graphics2D Transform with a translation transform.
 void translate(int x, int y)
          Translates the origin of the graphics context to the point (xy) in the current coordinate system.
 void validateTransformStack()
          Marks the GraphicContext's isNewTransformStack to false as a memento that the current transform stack was read and has not been reset.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

defaultTransform

protected java.awt.geom.AffineTransform defaultTransform
Default Transform to be used for creating FontRenderContext.


transform

protected java.awt.geom.AffineTransform transform
Current AffineTransform. This is the concatenation of the original AffineTransform (i.e., last setTransform invocation) and the following transform invocations, as captured by originalTransform and the transformStack.


transformStack

protected java.util.Vector transformStack
Transform stack


transformStackValid

protected boolean transformStackValid
Defines whether the transform stack is valide or not. This is for use by the class clients. The client should validate the stack every time it starts using it. The stack becomes invalid when a new transform is set.

See Also:
invalidateTransformStack() 55 , isTransformStackValid() 55 , setTransform(java.awt.geom.AffineTransform) 55

paint

protected java.awt.Paint paint
Current Paint


stroke

protected java.awt.Stroke stroke
Current Stroke


composite

protected java.awt.Composite composite
Current Composite


clip

protected java.awt.Shape clip
Current clip


hints

protected java.awt.RenderingHints hints
Current set of RenderingHints


font

protected java.awt.Font font
Current Font


background

protected java.awt.Color background
Current background color.


foreground

protected java.awt.Color foreground
Current foreground color

Constructor Detail

GraphicContext

public GraphicContext()
Default constructor


GraphicContext

public GraphicContext(java.awt.geom.AffineTransform defaultDeviceTransform)
Method Detail

clone

public java.lang.Object clone()
Description copied from class: java.lang.Object
This method may be called to create a new copy of the Object. The typical behavior is as follows:
  • o == o.clone() is false
  • o.getClass() == o.clone().getClass() is true
  • o.equals(o) is true

However, these are not strict requirements, and may be violated if necessary. Of the three requirements, the last is the most commonly violated, particularly if the subclass does not override Object.equals(Object)>Object.equals(Object) 55 .

If the Object you call clone() on does not implement java.lang.Cloneable (which is a placeholder interface), then a CloneNotSupportedException is thrown. Notice that Object does not implement Cloneable; this method exists as a convenience for subclasses that do.

Object's implementation of clone allocates space for the new Object using the correct class, without calling any constructors, and then fills in all of the new field values with the old field values. Thus, it is a shallow copy. However, subclasses are permitted to make a deep copy.

All array types implement Cloneable, and override this method as follows (it should never fail):

 public Object clone()
 {
   try
     {
       super.clone();
     }
   catch (CloneNotSupportedException e)
     {
       throw new InternalError(e.getMessage());
     }
 }
 


getColor

public java.awt.Color getColor()
Gets this graphics context's current color.


setColor

public void setColor(java.awt.Color c)
Sets this graphics context's current color to the specified color. All subsequent graphics operations using this graphics context use this specified color.


getFont

public java.awt.Font getFont()
Gets the current font.


setFont

public void setFont(java.awt.Font font)
Sets this graphics context's font to the specified font. All subsequent text operations using this graphics context use this font.


getClipBounds

public java.awt.Rectangle getClipBounds()
Returns the bounding rectangle of the current clipping area. This method refers to the user clip, which is independent of the clipping associated with device bounds and window visibility. If no clip has previously been set, or if the clip has been cleared using setClip(null), this method returns null. The coordinates in the rectangle are relative to the coordinate system origin of this graphics context.

Since:
JDK1.1

clipRect

public void clipRect(int x,
                     int y,
                     int width,
                     int height)
Intersects the current clip with the specified rectangle. The resulting clipping area is the intersection of the current clipping area and the specified rectangle. If there is no current clipping area, either because the clip has never been set, or the clip has been cleared using setClip(null), the specified rectangle becomes the new clip. This method sets the user clip, which is independent of the clipping associated with device bounds and window visibility. This method can only be used to make the current clip smaller. To set the current clip larger, use any of the setClip methods. Rendering operations have no effect outside of the clipping area.


setClip

public void setClip(int x,
                    int y,
                    int width,
                    int height)
Sets the current clip to the rectangle specified by the given coordinates. This method sets the user clip, which is independent of the clipping associated with device bounds and window visibility. Rendering operations have no effect outside of the clipping area.

Since:
JDK1.1

getClip

public java.awt.Shape getClip()
Gets the current clipping area. This method returns the user clip, which is independent of the clipping associated with device bounds and window visibility. If no clip has previously been set, or if the clip has been cleared using setClip(null), this method returns null.

Since:
JDK1.1

setClip

public void setClip(java.awt.Shape clip)
Sets the current clipping area to an arbitrary clip shape. Not all objects that implement the Shape interface can be used to set the clip. The only Shape objects that are guaranteed to be supported are Shape objects that are obtained via the getClip method and via Rectangle objects. This method sets the user clip, which is independent of the clipping associated with device bounds and window visibility.

Since:
JDK1.1

setComposite

public void setComposite(java.awt.Composite comp)
Sets the Composite for the Graphics2D context. The Composite is used in all drawing methods such as drawImage, drawString, draw, and fill. It specifies how new pixels are to be combined with the existing pixels on the graphics device during the rendering process.

If this Graphics2D context is drawing to a Component on the display screen and the Composite is a custom object rather than an instance of the AlphaComposite class, and if there is a security manager, its checkPermission method is called with an AWTPermission("readDisplayPixels") permission.


setPaint

public void setPaint(java.awt.Paint paint)
Sets the Paint attribute for the Graphics2D context. Calling this method with a null Paint object does not have any effect on the current Paint attribute of this Graphics2D.


setStroke

public void setStroke(java.awt.Stroke s)
Sets the Stroke for the Graphics2D context.


setRenderingHint

public void setRenderingHint(java.awt.RenderingHints.Key hintKey,
                             java.lang.Object hintValue)
Sets the value of a single preference for the rendering algorithms. Hint categories include controls for rendering quality and overall time/quality trade-off in the rendering process. Refer to the RenderingHints class for definitions of some common keys and values.


getRenderingHint

public java.lang.Object getRenderingHint(java.awt.RenderingHints.Key hintKey)
Returns the value of a single preference for the rendering algorithms. Hint categories include controls for rendering quality and overall time/quality trade-off in the rendering process. Refer to the RenderingHints class for definitions of some common keys and values.


setRenderingHints

public void setRenderingHints(java.util.Map hints)
Replaces the values of all preferences for the rendering algorithms with the specified hints. The existing values for all rendering hints are discarded and the new set of known hints and values are initialized from the specified java.util.Map object. Hint categories include controls for rendering quality and overall time/quality trade-off in the rendering process. Refer to the RenderingHints class for definitions of some common keys and values.


addRenderingHints

public void addRenderingHints(java.util.Map hints)
Sets the values of an arbitrary number of preferences for the rendering algorithms. Only values for the rendering hints that are present in the specified Map object are modified. All other preferences not present in the specified object are left unmodified. Hint categories include controls for rendering quality and overall time/quality trade-off in the rendering process. Refer to the RenderingHints class for definitions of some common keys and values.


getRenderingHints

public java.awt.RenderingHints getRenderingHints()
Gets the preferences for the rendering algorithms. Hint categories include controls for rendering quality and overall time/quality trade-off in the rendering process. Returns all of the hint key/value pairs that were ever specified in one operation. Refer to the RenderingHints class for definitions of some common keys and values.


translate

public void translate(int x,
                      int y)
Translates the origin of the graphics context to the point (xy) in the current coordinate system. Modifies this graphics context so that its new origin corresponds to the point (xy) in this graphics context's original coordinate system. All coordinates used in subsequent rendering operations on this graphics context will be relative to this new origin.


translate

public void translate(double tx,
                      double ty)
Concatenates the current Graphics2D Transform with a translation transform. Subsequent rendering is translated by the specified distance relative to the previous position. This is equivalent to calling transform(T), where T is an AffineTransform represented by the following matrix:
          [   1    0    tx  ]
          [   0    1    ty  ]
          [   0    0    1   ]
 


rotate

public void rotate(double theta)
Concatenates the current Graphics2D Transform with a rotation transform. Subsequent rendering is rotated by the specified radians relative to the previous origin. This is equivalent to calling transform(R), where R is an AffineTransform represented by the following matrix:
          [   cos(theta)    -sin(theta)    0   ]
          [   sin(theta)     cos(theta)    0   ]
          [       0              0         1   ]
 
Rotating with a positive angle theta rotates points on the positive x axis toward the positive y axis.


rotate

public void rotate(double theta,
                   double x,
                   double y)
Concatenates the current Graphics2D Transform with a translated rotation transform. Subsequent rendering is transformed by a transform which is constructed by translating to the specified location, rotating by the specified radians, and translating back by the same amount as the original translation. This is equivalent to the following sequence of calls:
          translate(x, y);
          rotate(theta);
          translate(-x, -y);
 
Rotating with a positive angle theta rotates points on the positive x axis toward the positive y axis.


scale

public void scale(double sx,
                  double sy)
Concatenates the current Graphics2D Transform with a scaling transformation Subsequent rendering is resized according to the specified scaling factors relative to the previous scaling. This is equivalent to calling transform(S), where S is an AffineTransform represented by the following matrix:
          [   sx   0    0   ]
          [   0    sy   0   ]
          [   0    0    1   ]
 


shear

public void shear(double shx,
                  double shy)
Concatenates the current Graphics2D Transform with a shearing transform. Subsequent renderings are sheared by the specified multiplier relative to the previous position. This is equivalent to calling transform(SH), where SH is an AffineTransform represented by the following matrix:
          [   1   shx   0   ]
          [  shy   1    0   ]
          [   0    0    1   ]
 


transform

public void transform(java.awt.geom.AffineTransform Tx)
Composes an AffineTransform object with the Transform in this Graphics2D according to the rule last-specified-first-applied. If the current Transform is Cx, the result of composition with Tx is a new Transform Cx'. Cx' becomes the current Transform for this Graphics2D. Transforming a point p by the updated Transform Cx' is equivalent to first transforming p by Tx and then transforming the result by the original Transform Cx. In other words, Cx'(p) = Cx(Tx(p)). A copy of the Tx is made, if necessary, so further modifications to Tx do not affect rendering.


setTransform

public void setTransform(java.awt.geom.AffineTransform Tx)
Sets the Transform in the Graphics2D context.


validateTransformStack

public void validateTransformStack()
Marks the GraphicContext's isNewTransformStack to false as a memento that the current transform stack was read and has not been reset. Only the setTransform method can override this memento.


isTransformStackValid

public boolean isTransformStackValid()
Checks the status of the transform stack


getTransformStack

public TransformStackElement[] getTransformStack()

invalidateTransformStack

protected void invalidateTransformStack()
Marks the GraphicContext's isNewTransformStack to true as a memento that the current transform stack was reset since it was last read. Only validateTransformStack can override this memento


getTransform

public java.awt.geom.AffineTransform getTransform()
Returns a copy of the current Transform in the Graphics2D context.


getPaint

public java.awt.Paint getPaint()
Returns the current Paint of the Graphics2D context.


getComposite

public java.awt.Composite getComposite()
Returns the current Composite in the Graphics2D context.


setBackground

public void setBackground(java.awt.Color color)
Sets the background color for the Graphics2D context. The background color is used for clearing a region. When a Graphics2D is constructed for a Component, the background color is inherited from the Component. Setting the background color in the Graphics2D context only affects the subsequent clearRect calls and not the background color of the Component. To change the background of the Component, use appropriate methods of the Component.


getBackground

public java.awt.Color getBackground()
Returns the background color used for clearing a region.


getStroke

public java.awt.Stroke getStroke()
Returns the current Stroke in the Graphics2D context.


clip

public void clip(java.awt.Shape s)
Intersects the current Clip with the interior of the specified Shape and sets the Clip to the resulting intersection. The specified Shape is transformed with the current Graphics2D Transform before being intersected with the current Clip. This method is used to make the current Clip smaller. To make the Clip larger, use setClip. The user clip modified by this method is independent of the clipping associated with device bounds and visibility. If no clip has previously been set, or if the clip has been cleared using setClip 55 with a null argument, the specified Shape becomes the new user clip.


getFontRenderContext

public java.awt.font.FontRenderContext getFontRenderContext()
Get the rendering context of the Font within this Graphics2D context. The java.awt.font.FontRenderContext encapsulates application hints such as anti-aliasing and fractional metrics, as well as target device specific information such as dots-per-inch. This information should be provided by the application when using objects that perform typographical formatting, such as Font and TextLayout. This information should also be provided by applications that perform their own layout and need accurate measurements of various characteristics of glyphs such as advance and line height when various rendering hints have been applied to the text rendering.

Since:
JDK1.2