Package weka.gui.visualize

# Class PostscriptGraphics

java.lang.Object
java.awt.Graphics
java.awt.Graphics2D
weka.gui.visualize.PostscriptGraphics

public class PostscriptGraphics extends 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: 10222 $
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

  Constructors
  Constructor
  Description
  `PostscriptGraphics(int width, int height, OutputStream os)`
  Constructor Creates a new PostscriptGraphics object, given dimensions and output file.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static void`
  `addPSFontReplacement(String replace, String with)`
  adds the PS font name to replace and its replacement in the replacement hashtable
  `void`
  `addRenderingHints(Map<?,?> m)`
  `void`
  `clearRect(int x, int y, int width, int height)`
  Draw a filled rectangle with the background color.
  `void`
  `clip(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
  `Graphics`
  `create()`
  Clone a PostscriptGraphics object
  `void`
  `dispose()`
  Not implemented
  `void`
  `draw(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(GlyphVector gv, float f1, float f2)`
  `void`
  `drawImage(BufferedImage bi, BufferedImageOp bio, int i1, int i2)`
  `boolean`
  `drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer)`
  Not implemented
  `boolean`
  `drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)`
  calls drawImage(Image,int,int,int,int,int,int,int,int,Color,ImageObserver) with Color.WHITE as background color
  `boolean`
  `drawImage(Image img, int x, int y, int width, int height, Color bgcolor, 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(Image img, int x, int y, int width, int height, ImageObserver observer)`
  calls drawImage(Image,int,int,int,int,Color,ImageObserver) with the color WHITE as background
  `boolean`
  `drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer)`
  calls drawImage(Image,int,int,int,int,Color,ImageObserver)
  `boolean`
  `drawImage(Image img, int x, int y, ImageObserver observer)`
  calls drawImage(Image,int,int,Color,ImageObserver) with Color.WHITE as background color
  `boolean`
  `drawImage(Image im, AffineTransform at, ImageObserver io)`
  `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(RenderableImage ri, AffineTransform at)`
  `void`
  `drawRenderedImage(RenderedImage ri, AffineTransform af)`
  `void`
  `drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)`
  Not implemented
  `void`
  `drawString(String str, float x, float y)`
  `void`
  `drawString(String str, int x, int y)`
  Draw text in current pen color.
  `void`
  `drawString(AttributedCharacterIterator aci, float f1, float f2)`
  `void`
  `drawString(AttributedCharacterIterator iterator, int x, int y)`
  Not implemented
  `void`
  `fill(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(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.
  `Color`
  `getBackground()`
  `Shape`
  `getClip()`
  Not implemented
  `Rectangle`
  `getClipBounds()`
  This returns the full current drawing area
  `Rectangle`
  `getClipBounds(Rectangle r)`
  This returns the full current drawing area
  `Rectangle`
  `getClipRect()`
  Not implemented
  `Color`
  `getColor()`
  Get current pen color.
  `Composite`
  `getComposite()`
  `GraphicsConfiguration`
  `getDeviceConfiguration()`
  `Font`
  `getFont()`
  Get current font.
  `FontMetrics`
  `getFontMetrics(Font f)`
  Get Font metrics
  `FontRenderContext`
  `getFontRenderContext()`
  START overridden Graphics2D methods
  `Paint`
  `getPaint()`
  `Object`
  `getRenderingHint(RenderingHints.Key key)`
  `RenderingHints`
  `getRenderingHints()`
  `Stroke`
  `getStroke()`
  `AffineTransform`
  `getTransform()`
  `boolean`
  `hit(Rectangle r, Shape s, boolean onstroke)`
  `void`
  `rotate(double d1)`
  `void`
  `rotate(double d1, double d2, double d3)`
  `void`
  `scale(double d1, double d2)`
  `void`
  `setBackground(Color c)`
  `void`
  `setClip(int x, int y, int width, int height)`
  Not implemented
  `void`
  `setClip(Shape clip)`
  Not implemented
  `void`
  `setColor(Color c)`
  Set current pen color.
  `void`
  `setComposite(Composite c)`
  `void`
  `setFont(Font font)`
  Set current font.
  `void`
  `setPaint(Paint p)`
  `void`
  `setPaintMode()`
  Not implemented
  `void`
  `setRenderingHint(RenderingHints.Key key, Object o)`
  `void`
  `setRenderingHints(Map<?,?> m)`
  `void`
  `setStroke(Stroke s)`
  `void`
  `setTransform(AffineTransform at)`
  `void`
  `setXORMode(Color c1)`
  Not implemented
  `void`
  `shear(double d1, double d2)`
  `void`
  `transform(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 Details

  - ### PostscriptGraphics

    public PostscriptGraphics(int width, int height, 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 Details

  - ### finished

    public void finished()
    Finalizes output file.

  - ### addPSFontReplacement

    public static void addPSFontReplacement(String replace, 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.
    Specified by:
      `clearRect` in class `Graphics`
    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
    Specified by:
      `clipRect` in class `Graphics`

  - ### copyArea

    public void copyArea(int x, int y, int width, int height, int dx, int dy)
    Not implemented
    Specified by:
      `copyArea` in class `Graphics`

  - ### create

    public Graphics create()
    Clone a PostscriptGraphics object
    Specified by:
      `create` in class `Graphics`

  - ### dispose

    public void dispose()
    Not implemented
    Specified by:
      `dispose` in class `Graphics`

  - ### 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)
    Overrides:
      `draw3DRect` in class `Graphics2D`
    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
    Specified by:
      `drawArc` in class `Graphics`

  - ### drawBytes

    public void drawBytes(byte[] data, int offset, int length, int x, int y)
    simply calls drawString(String,int,int)
    Overrides:
      `drawBytes` in class `Graphics`
    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)
    Overrides:
      `drawChars` in class `Graphics`
    See Also:
      - `drawString(String,int,int)`

  - ### drawImage

    public boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer)
    calls drawImage(Image,int,int,int,int,Color,ImageObserver)
    Specified by:
      `drawImage` in class `Graphics`
    See Also:
      - `drawImage(Image,int,int,int,int,Color,ImageObserver)`

  - ### drawImage

    public boolean drawImage(Image img, int x, int y, ImageObserver observer)
    calls drawImage(Image,int,int,Color,ImageObserver) with Color.WHITE as background color
    Specified by:
      `drawImage` in class `Graphics`
    See Also:
      - `drawImage(Image,int,int,Color,ImageObserver)`
      - `Color.WHITE`

  - ### drawImage

    public boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor, 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
    Specified by:
      `drawImage` in class `Graphics`

  - ### drawImage

    public boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)
    calls drawImage(Image,int,int,int,int,Color,ImageObserver) with the color WHITE as background
    Specified by:
      `drawImage` in class `Graphics`
    See Also:
      - `drawImage(Image,int,int,int,int,Color,ImageObserver)`
      - `Color.WHITE`

  - ### drawImage

    public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer)
    Not implemented
    Specified by:
      `drawImage` in class `Graphics`

  - ### drawImage

    public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)
    calls drawImage(Image,int,int,int,int,int,int,int,int,Color,ImageObserver) with Color.WHITE as background color
    Specified by:
      `drawImage` in class `Graphics`
    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.
    Specified by:
      `drawLine` in class `Graphics`
    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.
    Specified by:
      `drawOval` in class `Graphics`
    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
    Specified by:
      `drawPolygon` in class `Graphics`

  - ### drawPolyline

    public void drawPolyline(int[] xPoints, int[] yPoints, int nPoints)
    Not implemented
    Specified by:
      `drawPolyline` in class `Graphics`

  - ### drawRect

    public void drawRect(int x, int y, int width, int height)
    Draw an outlined rectangle in current pen color.
    Overrides:
      `drawRect` in class `Graphics`
    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
    Specified by:
      `drawRoundRect` in class `Graphics`

  - ### drawString

    public void drawString(AttributedCharacterIterator iterator, int x, int y)
    Not implemented
    Specified by:
      `drawString` in class `Graphics2D`

  - ### drawString

    public void drawString(String str, int x, int y)
    Draw text in current pen color.
    Specified by:
      `drawString` in class `Graphics2D`
    Parameters:
      `str` - Text to output
      `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)
    Overrides:
      `fill3DRect` in class `Graphics2D`
    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
    Specified by:
      `fillArc` in class `Graphics`

  - ### fillOval

    public void fillOval(int x, int y, int width, int height)
    Draw a filled Oval in current pen color.
    Specified by:
      `fillOval` in class `Graphics`
    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
    Specified by:
      `fillPolygon` in class `Graphics`

  - ### fillPolygon

    public void fillPolygon(Polygon p)
    Not implemented
    Overrides:
      `fillPolygon` in class `Graphics`

  - ### fillRect

    public void fillRect(int x, int y, int width, int height)
    Draw a filled rectangle in current pen color.
    Specified by:
      `fillRect` in class `Graphics`
    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
    Specified by:
      `fillRoundRect` in class `Graphics`

  - ### finalize

    public void finalize()
    Not implemented
    Overrides:
      `finalize` in class `Graphics`

  - ### getClip

    public Shape getClip()
    Not implemented
    Specified by:
      `getClip` in class `Graphics`

  - ### getClipBounds

    public Rectangle getClipBounds()
    This returns the full current drawing area
    Specified by:
      `getClipBounds` in class `Graphics`
    Returns:
      full drawing area

  - ### getClipBounds

    public Rectangle getClipBounds(Rectangle r)
    This returns the full current drawing area
    Overrides:
      `getClipBounds` in class `Graphics`
    Returns:
      full drawing area

  - ### getClipRect

    public Rectangle getClipRect()
    Not implemented
    Overrides:
      `getClipRect` in class `Graphics`

  - ### getColor

    public Color getColor()
    Get current pen color.
    Specified by:
      `getColor` in class `Graphics`
    Returns:
      current pen color.

  - ### getFont

    public Font getFont()
    Get current font.
    Specified by:
      `getFont` in class `Graphics`
    Returns:
      current font.

  - ### getFontMetrics

    public FontMetrics getFontMetrics(Font f)
    Get Font metrics
    Specified by:
      `getFontMetrics` in class `Graphics`
    Parameters:
      `f` - Font
    Returns:
      Font metrics.

  - ### setClip

    public void setClip(int x, int y, int width, int height)
    Not implemented
    Specified by:
      `setClip` in class `Graphics`

  - ### setClip

    public void setClip(Shape clip)
    Not implemented
    Specified by:
      `setClip` in class `Graphics`

  - ### setColor

    public void setColor(Color c)
    Set current pen color. Default to black if null.
    Specified by:
      `setColor` in class `Graphics`
    Parameters:
      `c` - new pen color.

  - ### setFont

    public void setFont(Font font)
    Set current font. Default to Plain Courier 11 if null.
    Specified by:
      `setFont` in class `Graphics`
    Parameters:
      `font` - new font.

  - ### setPaintMode

    public void setPaintMode()
    Not implemented
    Specified by:
      `setPaintMode` in class `Graphics`

  - ### setXORMode

    public void setXORMode(Color c1)
    Not implemented
    Specified by:
      `setXORMode` in class `Graphics`

  - ### 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.
    Specified by:
      `translate` in class `Graphics2D`
    Parameters:
      `x` - the x coordinate.
      `y` - the y coordinate.

  - ### getFontRenderContext

    public FontRenderContext getFontRenderContext()
    START overridden Graphics2D methods
    Specified by:
      `getFontRenderContext` in class `Graphics2D`

  - ### clip

    public void clip(Shape s)
    Specified by:
      `clip` in class `Graphics2D`

  - ### getStroke

    public Stroke getStroke()
    Specified by:
      `getStroke` in class `Graphics2D`

  - ### getBackground

    public Color getBackground()
    Specified by:
      `getBackground` in class `Graphics2D`

  - ### setBackground

    public void setBackground(Color c)
    Specified by:
      `setBackground` in class `Graphics2D`

  - ### getComposite

    public Composite getComposite()
    Specified by:
      `getComposite` in class `Graphics2D`

  - ### getPaint

    public Paint getPaint()
    Specified by:
      `getPaint` in class `Graphics2D`

  - ### getTransform

    public AffineTransform getTransform()
    Specified by:
      `getTransform` in class `Graphics2D`

  - ### setTransform

    public void setTransform(AffineTransform at)
    Specified by:
      `setTransform` in class `Graphics2D`

  - ### transform

    public void transform(AffineTransform at)
    Specified by:
      `transform` in class `Graphics2D`

  - ### shear

    public void shear(double d1, double d2)
    Specified by:
      `shear` in class `Graphics2D`

  - ### scale

    public void scale(double d1, double d2)
    Specified by:
      `scale` in class `Graphics2D`

  - ### rotate

    public void rotate(double d1, double d2, double d3)
    Specified by:
      `rotate` in class `Graphics2D`

  - ### rotate

    public void rotate(double d1)
    Specified by:
      `rotate` in class `Graphics2D`

  - ### translate

    public void translate(double d1, double d2)
    Specified by:
      `translate` in class `Graphics2D`

  - ### getRenderingHints

    public RenderingHints getRenderingHints()
    Specified by:
      `getRenderingHints` in class `Graphics2D`

  - ### addRenderingHints

    public void addRenderingHints(Map<?,?> m)
    Specified by:
      `addRenderingHints` in class `Graphics2D`

  - ### setRenderingHints

    public void setRenderingHints(Map<?,?> m)
    Specified by:
      `setRenderingHints` in class `Graphics2D`

  - ### getRenderingHint

    public Object getRenderingHint(RenderingHints.Key key)
    Specified by:
      `getRenderingHint` in class `Graphics2D`

  - ### setRenderingHint

    public void setRenderingHint(RenderingHints.Key key, Object o)
    Specified by:
      `setRenderingHint` in class `Graphics2D`

  - ### setStroke

    public void setStroke(Stroke s)
    Specified by:
      `setStroke` in class `Graphics2D`

  - ### setPaint

    public void setPaint(Paint p)
    Specified by:
      `setPaint` in class `Graphics2D`

  - ### setComposite

    public void setComposite(Composite c)
    Specified by:
      `setComposite` in class `Graphics2D`

  - ### getDeviceConfiguration

    public GraphicsConfiguration getDeviceConfiguration()
    Specified by:
      `getDeviceConfiguration` in class `Graphics2D`

  - ### hit

    public boolean hit(Rectangle r, Shape s, boolean onstroke)
    Specified by:
      `hit` in class `Graphics2D`

  - ### fill

    public void fill(Shape s)
    Specified by:
      `fill` in class `Graphics2D`

  - ### drawGlyphVector

    public void drawGlyphVector(GlyphVector gv, float f1, float f2)
    Specified by:
      `drawGlyphVector` in class `Graphics2D`

  - ### drawString

    public void drawString(AttributedCharacterIterator aci, float f1, float f2)
    Specified by:
      `drawString` in class `Graphics2D`

  - ### drawString

    public void drawString(String str, float x, float y)
    Specified by:
      `drawString` in class `Graphics2D`

  - ### drawRenderableImage

    public void drawRenderableImage(RenderableImage ri, AffineTransform at)
    Specified by:
      `drawRenderableImage` in class `Graphics2D`

  - ### drawRenderedImage

    public void drawRenderedImage(RenderedImage ri, AffineTransform af)
    Specified by:
      `drawRenderedImage` in class `Graphics2D`

  - ### drawImage

    public void drawImage(BufferedImage bi, BufferedImageOp bio, int i1, int i2)
    Specified by:
      `drawImage` in class `Graphics2D`

  - ### drawImage

    public boolean drawImage(Image im, AffineTransform at, ImageObserver io)
    Specified by:
      `drawImage` in class `Graphics2D`

  - ### draw

    public void draw(Shape s)
    Specified by:
      `draw` in class `Graphics2D`