weka.gui.visualize
Class PostscriptGraphics

java.lang.Object
  extended byjava.awt.Graphics
      extended byjava.awt.Graphics2D
          extended byweka.gui.visualize.PostscriptGraphics

public class PostscriptGraphics
extends java.awt.Graphics2D

The PostscriptGraphics class extends the Graphics2D class to produce an encapsulated postscript file rather than on-screen display.

Currently only a small (but useful) subset of Graphics methods have been implemented. To handle the ability to Clone a Graphics object, the graphics state of the eps is set from the graphics state of the local PostscriptGraphics before output. To use, create a PostscriptGraphics object, and pass it to the PaintComponent method of a JComponent.

If necessary additional font replacements can be inserted, since some fonts might be displayed incorrectly.

Version:
$Revision: 1.2.2.1 $
Author:
Dale Fletcher (dale@cs.waikato.ac.nz), FracPete (fracpete at waikato dot ac dot nz)
See Also:
addPSFontReplacement(String, String), #m_PSFontReplacement

Constructor Summary
PostscriptGraphics(int width, int height, java.io.OutputStream os)
          Constructor Creates a new PostscriptGraphics object, given dimensions and output file.
 
Method Summary
static void addPSFontReplacement(java.lang.String replace, java.lang.String with)
          adds the PS font name to replace and its replacement in the replacement hashtable
 void addRenderingHints(java.util.Map m)
           
 void clearRect(int x, int y, int width, int height)
          Draw a filled rectangle with the background color.
 void clip(java.awt.Shape s)
           
 void clipRect(int x, int y, int width, int height)
          Not implemented
 void copyArea(int x, int y, int width, int height, int dx, int dy)
          Not implemented
 java.awt.Graphics create()
          Clone a PostscriptGraphics object
 void dispose()
          Not implemented
 void draw(java.awt.Shape s)
           
 void draw3DRect(int x, int y, int width, int height, boolean raised)
          Draw an outlined rectangle with 3D effect in current pen color.
 void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)
          Not implemented
 void drawBytes(byte[] data, int offset, int length, int x, int y)
          simply calls drawString(String,int,int)
 void drawChars(char[] data, int offset, int length, int x, int y)
          simply calls drawString(String,int,int)
 void drawGlyphVector(java.awt.font.GlyphVector gv, float f1, float f2)
           
 void drawImage(java.awt.image.BufferedImage bi, java.awt.image.BufferedImageOp bio, int i1, int i2)
           
 boolean drawImage(java.awt.Image im, java.awt.geom.AffineTransform at, java.awt.image.ImageObserver io)
           
 boolean drawImage(java.awt.Image img, int x, int y, java.awt.Color bgcolor, java.awt.image.ImageObserver observer)
          calls drawImage(Image,int,int,int,int,Color,ImageObserver)
 boolean drawImage(java.awt.Image img, int x, int y, java.awt.image.ImageObserver observer)
          calls drawImage(Image,int,int,Color,ImageObserver) with Color.WHITE as background color
 boolean drawImage(java.awt.Image img, int x, int y, int width, int height, java.awt.Color bgcolor, java.awt.image.ImageObserver observer)
          PS see http://astronomy.swin.edu.au/~pbourke/geomformats/postscript/ Java http://show.docjava.com:8086/book/cgij/doc/ip/graphics/SimpleImageFrame.java.html
 boolean drawImage(java.awt.Image img, int x, int y, int width, int height, java.awt.image.ImageObserver observer)
          calls drawImage(Image,int,int,int,int,Color,ImageObserver) with the color WHITE as background
 boolean drawImage(java.awt.Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, java.awt.Color bgcolor, java.awt.image.ImageObserver observer)
          Not implemented
 boolean drawImage(java.awt.Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, java.awt.image.ImageObserver observer)
          calls drawImage(Image,int,int,int,int,int,int,int,int,Color,ImageObserver) with Color.WHITE as background color
 void drawLine(int x1, int y1, int x2, int y2)
          Draw a line in current pen color.
 void drawOval(int x, int y, int width, int height)
          Draw an Oval outline in current pen color.
 void drawPolygon(int[] xPoints, int[] yPoints, int nPoints)
          Not implemented
 void drawPolyline(int[] xPoints, int[] yPoints, int nPoints)
          Not implemented
 void drawRect(int x, int y, int width, int height)
          Draw an outlined rectangle in current pen color.
 void drawRenderableImage(java.awt.image.renderable.RenderableImage ri, java.awt.geom.AffineTransform at)
           
 void drawRenderedImage(java.awt.image.RenderedImage ri, java.awt.geom.AffineTransform af)
           
 void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
          Not implemented
 void drawString(java.text.AttributedCharacterIterator aci, float f1, float f2)
           
 void drawString(java.text.AttributedCharacterIterator iterator, int x, int y)
          Not implemented
 void drawString(java.lang.String str, float x, float y)
           
 void drawString(java.lang.String str, int x, int y)
          Draw text in current pen color.
 void fill(java.awt.Shape s)
           
 void fill3DRect(int x, int y, int width, int height, boolean raised)
          Draw a filled rectangle with 3D effect in current pen color.
 void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)
          Not implemented
 void fillOval(int x, int y, int width, int height)
          Draw a filled Oval in current pen color.
 void fillPolygon(int[] xPoints, int[] yPoints, int nPoints)
          Not implemented
 void fillPolygon(java.awt.Polygon p)
          Not implemented
 void fillRect(int x, int y, int width, int height)
          Draw a filled rectangle in current pen color.
 void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
          Not implemented
 void finalize()
          Not implemented
 void finished()
          Finalizes output file.
 java.awt.Color getBackground()
           
 java.awt.Shape getClip()
          Not implemented
 java.awt.Rectangle getClipBounds()
          This returns the full current drawing area
 java.awt.Rectangle getClipBounds(java.awt.Rectangle r)
          This returns the full current drawing area
 java.awt.Rectangle getClipRect()
          Not implemented
 java.awt.Color getColor()
          Get current pen color.
 java.awt.Composite getComposite()
           
 java.awt.GraphicsConfiguration getDeviceConfiguration()
           
 java.awt.Font getFont()
          Get current font.
 java.awt.FontMetrics getFontMetrics(java.awt.Font f)
          Get Font metrics
 java.awt.font.FontRenderContext getFontRenderContext()
          START overridden Graphics2D methods
 java.awt.Paint getPaint()
           
 java.lang.Object getRenderingHint(java.awt.RenderingHints.Key key)
           
 java.awt.RenderingHints getRenderingHints()
           
 java.awt.Stroke getStroke()
           
 java.awt.geom.AffineTransform getTransform()
           
 boolean hit(java.awt.Rectangle r, java.awt.Shape s, boolean onstroke)
           
 void rotate(double d1)
           
 void rotate(double d1, double d2, double d3)
           
 void scale(double d1, double d2)
           
 void setBackground(java.awt.Color c)
           
 void setClip(int x, int y, int width, int height)
          Not implemented
 void setClip(java.awt.Shape clip)
          Not implemented
 void setColor(java.awt.Color c)
          Set current pen color.
 void setComposite(java.awt.Composite c)
           
 void setFont(java.awt.Font font)
          Set current font.
 void setPaint(java.awt.Paint p)
           
 void setPaintMode()
          Not implemented
 void setRenderingHint(java.awt.RenderingHints.Key key, java.lang.Object o)
           
 void setRenderingHints(java.util.Map m)
           
 void setStroke(java.awt.Stroke s)
           
 void setTransform(java.awt.geom.AffineTransform at)
           
 void setXORMode(java.awt.Color c1)
          Not implemented
 void shear(double d1, double d2)
           
 void transform(java.awt.geom.AffineTransform at)
           
 void translate(double d1, double d2)
           
 void translate(int x, int y)
          Translates the origin of the graphics context to the point (x, y) in the current coordinate system.
 
Methods inherited from class java.awt.Graphics
create, drawPolygon, getFontMetrics, hitClip, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PostscriptGraphics

public PostscriptGraphics(int width,
                          int height,
                          java.io.OutputStream os)
Constructor Creates a new PostscriptGraphics object, given dimensions and output file.

Parameters:
width - The width of eps in points.
height - The height of eps in points.
os - File to send postscript to.
Method Detail

finished

public void finished()
Finalizes output file.


addPSFontReplacement

public static void addPSFontReplacement(java.lang.String replace,
                                        java.lang.String with)
adds the PS font name to replace and its replacement in the replacement hashtable

Parameters:
replace - the PS font name to replace
with - the PS font name to replace the font with

clearRect

public void clearRect(int x,
                      int y,
                      int width,
                      int height)
Draw a filled rectangle with the background color.

Parameters:
x - starting x coord
y - starting y coord
width - rectangle width
height - rectangle height

clipRect

public void clipRect(int x,
                     int y,
                     int width,
                     int height)
Not implemented


copyArea

public void copyArea(int x,
                     int y,
                     int width,
                     int height,
                     int dx,
                     int dy)
Not implemented


create

public java.awt.Graphics create()
Clone a PostscriptGraphics object


dispose

public void dispose()
Not implemented


draw3DRect

public void draw3DRect(int x,
                       int y,
                       int width,
                       int height,
                       boolean raised)
Draw an outlined rectangle with 3D effect in current pen color. (Current implementation: draw simple outlined rectangle)

Parameters:
x - starting x coord
y - starting y coord
width - rectangle width
height - rectangle height
raised - True: appear raised, False: appear etched

drawArc

public void drawArc(int x,
                    int y,
                    int width,
                    int height,
                    int startAngle,
                    int arcAngle)
Not implemented


drawBytes

public void drawBytes(byte[] data,
                      int offset,
                      int length,
                      int x,
                      int y)
simply calls drawString(String,int,int)

See Also:
drawString(String,int,int)

drawChars

public void drawChars(char[] data,
                      int offset,
                      int length,
                      int x,
                      int y)
simply calls drawString(String,int,int)

See Also:
drawString(String,int,int)

drawImage

public boolean drawImage(java.awt.Image img,
                         int x,
                         int y,
                         java.awt.Color bgcolor,
                         java.awt.image.ImageObserver observer)
calls drawImage(Image,int,int,int,int,Color,ImageObserver)

See Also:
drawImage(Image,int,int,int,int,Color,ImageObserver)

drawImage

public boolean drawImage(java.awt.Image img,
                         int x,
                         int y,
                         java.awt.image.ImageObserver observer)
calls drawImage(Image,int,int,Color,ImageObserver) with Color.WHITE as background color

See Also:
drawImage(Image,int,int,Color,ImageObserver), Color.WHITE

drawImage

public boolean drawImage(java.awt.Image img,
                         int x,
                         int y,
                         int width,
                         int height,
                         java.awt.Color bgcolor,
                         java.awt.image.ImageObserver observer)
PS see http://astronomy.swin.edu.au/~pbourke/geomformats/postscript/ Java http://show.docjava.com:8086/book/cgij/doc/ip/graphics/SimpleImageFrame.java.html


drawImage

public boolean drawImage(java.awt.Image img,
                         int x,
                         int y,
                         int width,
                         int height,
                         java.awt.image.ImageObserver observer)
calls drawImage(Image,int,int,int,int,Color,ImageObserver) with the color WHITE as background

See Also:
drawImage(Image,int,int,int,int,Color,ImageObserver), Color.WHITE

drawImage

public boolean drawImage(java.awt.Image img,
                         int dx1,
                         int dy1,
                         int dx2,
                         int dy2,
                         int sx1,
                         int sy1,
                         int sx2,
                         int sy2,
                         java.awt.Color bgcolor,
                         java.awt.image.ImageObserver observer)
Not implemented


drawImage

public boolean drawImage(java.awt.Image img,
                         int dx1,
                         int dy1,
                         int dx2,
                         int dy2,
                         int sx1,
                         int sy1,
                         int sx2,
                         int sy2,
                         java.awt.image.ImageObserver observer)
calls drawImage(Image,int,int,int,int,int,int,int,int,Color,ImageObserver) with Color.WHITE as background color

See Also:
drawImage(Image,int,int,int,int,int,int,int,int,Color,ImageObserver)

drawLine

public void drawLine(int x1,
                     int y1,
                     int x2,
                     int y2)
Draw a line in current pen color.

Parameters:
x1 - starting x coord
y1 - starting y coord
x2 - ending x coord
y2 - ending y coord

drawOval

public void drawOval(int x,
                     int y,
                     int width,
                     int height)
Draw an Oval outline in current pen color.

Parameters:
x - x-axis center of oval
y - y-axis center of oval
width - oval width
height - oval height

drawPolygon

public void drawPolygon(int[] xPoints,
                        int[] yPoints,
                        int nPoints)
Not implemented


drawPolyline

public void drawPolyline(int[] xPoints,
                         int[] yPoints,
                         int nPoints)
Not implemented


drawRect

public void drawRect(int x,
                     int y,
                     int width,
                     int height)
Draw an outlined rectangle in current pen color.

Parameters:
x - starting x coord
y - starting y coord
width - rectangle width
height - rectangle height

drawRoundRect

public void drawRoundRect(int x,
                          int y,
                          int width,
                          int height,
                          int arcWidth,
                          int arcHeight)
Not implemented


drawString

public void drawString(java.text.AttributedCharacterIterator iterator,
                       int x,
                       int y)
Not implemented


drawString

public void drawString(java.lang.String str,
                       int x,
                       int y)
Draw text in current pen color.

Parameters:
x - starting x coord
y - starting y coord

fill3DRect

public void fill3DRect(int x,
                       int y,
                       int width,
                       int height,
                       boolean raised)
Draw a filled rectangle with 3D effect in current pen color. (Current implementation: draw simple filled rectangle)

Parameters:
x - starting x coord
y - starting y coord
width - rectangle width
height - rectangle height
raised - True: appear raised, False: appear etched

fillArc

public void fillArc(int x,
                    int y,
                    int width,
                    int height,
                    int startAngle,
                    int arcAngle)
Not implemented


fillOval

public void fillOval(int x,
                     int y,
                     int width,
                     int height)
Draw a filled Oval in current pen color.

Parameters:
x - x-axis center of oval
y - y-axis center of oval
width - oval width
height - oval height

fillPolygon

public void fillPolygon(int[] xPoints,
                        int[] yPoints,
                        int nPoints)
Not implemented


fillPolygon

public void fillPolygon(java.awt.Polygon p)
Not implemented


fillRect

public void fillRect(int x,
                     int y,
                     int width,
                     int height)
Draw a filled rectangle in current pen color.

Parameters:
x - starting x coord
y - starting y coord
width - rectangle width
height - rectangle height

fillRoundRect

public void fillRoundRect(int x,
                          int y,
                          int width,
                          int height,
                          int arcWidth,
                          int arcHeight)
Not implemented


finalize

public void finalize()
Not implemented


getClip

public java.awt.Shape getClip()
Not implemented


getClipBounds

public java.awt.Rectangle getClipBounds()
This returns the full current drawing area

Returns:
full drawing area

getClipBounds

public java.awt.Rectangle getClipBounds(java.awt.Rectangle r)
This returns the full current drawing area

Returns:
full drawing area

getClipRect

public java.awt.Rectangle getClipRect()
Not implemented


getColor

public java.awt.Color getColor()
Get current pen color.

Returns:
current pen color.

getFont

public java.awt.Font getFont()
Get current font.

Returns:
current font.

getFontMetrics

public java.awt.FontMetrics getFontMetrics(java.awt.Font f)
Get Font metrics

Parameters:
f - Font
Returns:
Font metrics.

setClip

public void setClip(int x,
                    int y,
                    int width,
                    int height)
Not implemented


setClip

public void setClip(java.awt.Shape clip)
Not implemented


setColor

public void setColor(java.awt.Color c)
Set current pen color. Default to black if null.

Parameters:
c - new pen color.

setFont

public void setFont(java.awt.Font font)
Set current font. Default to Plain Courier 11 if null.

Parameters:
font - new font.

setPaintMode

public void setPaintMode()
Not implemented


setXORMode

public void setXORMode(java.awt.Color c1)
Not implemented


translate

public void translate(int x,
                      int y)
Translates the origin of the graphics context to the point (x, y) in the current coordinate system. Modifies this graphics context so that its new origin corresponds to the point (x, y) 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.

Parameters:
x - the x coordinate.
y - the y coordinate.

getFontRenderContext

public java.awt.font.FontRenderContext getFontRenderContext()
START overridden Graphics2D methods


clip

public void clip(java.awt.Shape s)

getStroke

public java.awt.Stroke getStroke()

getBackground

public java.awt.Color getBackground()

setBackground

public void setBackground(java.awt.Color c)

getComposite

public java.awt.Composite getComposite()

getPaint

public java.awt.Paint getPaint()

getTransform

public java.awt.geom.AffineTransform getTransform()

setTransform

public void setTransform(java.awt.geom.AffineTransform at)

transform

public void transform(java.awt.geom.AffineTransform at)

shear

public void shear(double d1,
                  double d2)

scale

public void scale(double d1,
                  double d2)

rotate

public void rotate(double d1,
                   double d2,
                   double d3)

rotate

public void rotate(double d1)

translate

public void translate(double d1,
                      double d2)

getRenderingHints

public java.awt.RenderingHints getRenderingHints()

addRenderingHints

public void addRenderingHints(java.util.Map m)

setRenderingHints

public void setRenderingHints(java.util.Map m)

getRenderingHint

public java.lang.Object getRenderingHint(java.awt.RenderingHints.Key key)

setRenderingHint

public void setRenderingHint(java.awt.RenderingHints.Key key,
                             java.lang.Object o)

setStroke

public void setStroke(java.awt.Stroke s)

setPaint

public void setPaint(java.awt.Paint p)

setComposite

public void setComposite(java.awt.Composite c)

getDeviceConfiguration

public java.awt.GraphicsConfiguration getDeviceConfiguration()

hit

public boolean hit(java.awt.Rectangle r,
                   java.awt.Shape s,
                   boolean onstroke)

fill

public void fill(java.awt.Shape s)

drawGlyphVector

public void drawGlyphVector(java.awt.font.GlyphVector gv,
                            float f1,
                            float f2)

drawString

public void drawString(java.text.AttributedCharacterIterator aci,
                       float f1,
                       float f2)

drawString

public void drawString(java.lang.String str,
                       float x,
                       float y)

drawRenderableImage

public void drawRenderableImage(java.awt.image.renderable.RenderableImage ri,
                                java.awt.geom.AffineTransform at)

drawRenderedImage

public void drawRenderedImage(java.awt.image.RenderedImage ri,
                              java.awt.geom.AffineTransform af)

drawImage

public void drawImage(java.awt.image.BufferedImage bi,
                      java.awt.image.BufferedImageOp bio,
                      int i1,
                      int i2)

drawImage

public boolean drawImage(java.awt.Image im,
                         java.awt.geom.AffineTransform at,
                         java.awt.image.ImageObserver io)

draw

public void draw(java.awt.Shape s)