org.apache.fop.render.awt
Class AWTRenderer

java.lang.Object
  |
  +--org.apache.fop.render.AbstractRenderer
        |
        +--org.apache.fop.render.awt.AWTRenderer
All Implemented Interfaces:
java.awt.print.Pageable, java.awt.print.Printable, Renderer

public class AWTRenderer
extends AbstractRenderer
implements java.awt.print.Printable, java.awt.print.Pageable

Modified by Mark Lillywhite mark-fop@inomial.com. Did lots of cleaning up and made the class implement the new Renderer interface. This class could also do with a general audit, and I suspect it's not swing-thread-safe either.


Inner Class Summary
protected  class AWTRenderer.MUserAgent
           
 
Field Summary
protected  float currentBlue
           
protected  java.lang.String currentFontName
          The current (internal) font name
protected  int currentFontSize
          The current font size in millipoints
protected  float currentGreen
           
protected  float currentRed
          The current colour's red, green and blue component
protected  java.util.Hashtable fontNames
           
protected  java.util.Hashtable fontStyles
           
protected  IDReferences idReferences
           
protected  java.util.Hashtable options
          options
protected  int pageHeight
           
protected  java.util.Vector pageList
           
protected  int pageNumber
           
protected  int pageWidth
           
protected  java.awt.Component parent
          The parent component, used to set up the font.
protected  ProgressListener progressListener
           
protected  Translator res
           
protected  java.awt.Color saveColor
           
protected  double scaleFactor
           
 
Fields inherited from class org.apache.fop.render.AbstractRenderer
currentAreaContainerXPosition, currentXPosition, currentYPosition, log
 
Fields inherited from interface java.awt.print.Printable
NO_SUCH_PAGE, PAGE_EXISTS
 
Fields inherited from interface java.awt.print.Pageable
UNKNOWN_NUMBER_OF_PAGES
 
Constructor Summary
AWTRenderer(Translator aRes)
           
 
Method Summary
protected  void addFilledRect(int x, int y, int w, int h, ColorType col)
          Add a filled rectangle to the current stream This default implementation calls addRect using the same color for fill and border.
protected  void addLine(int x1, int y1, int x2, int y2, int th, float r, float g, float b)
          add a line to the current stream
protected  void addRect(int x, int y, int w, int h, boolean drawAsOutline)
          draw a filled rectangle in the current color
protected  void addRect(int x, int y, int w, int h, float r, float g, float b)
          draw a rectangle
protected  void addRect(int x, int y, int w, int h, float r, float g, float b, float fr, float fg, float fb)
          draw a filled rectangle
static java.awt.Color colorType2Color(ColorType ct)
           
protected  void doFrame(Area area)
           
protected  void drawFrame()
           
protected  java.awt.geom.Rectangle2D getBounds(Area a)
           
 java.awt.image.BufferedImage getLastRenderedPage()
           
 int getNumberOfPages()
           
 int getPageCount()
          Retrieve the number of pages in this document.
 java.awt.print.PageFormat getPageFormat(int pageIndex)
           
 int getPageNumber()
           
 java.awt.print.Printable getPrintable(int pageIndex)
           
 double getScaleFactor()
           
 int print(java.awt.Graphics g, java.awt.print.PageFormat pageFormat, int pageIndex)
           
 void removePage(int page)
           
 void render(int aPageNumber)
           
 void render(Page page)
           
 void render(Page page, java.io.OutputStream stream)
          render the given area tree to the given stream
 void renderDisplaySpace(DisplaySpace space)
          render the given display space
 void renderForeignObjectArea(ForeignObjectArea area)
          Draws an image.
 void renderImageArea(ImageArea area)
          render the given image area
 void renderInlineSpace(InlineSpace space)
          render the given inline space
 void renderLeaderArea(LeaderArea area)
          render leader area into AWT
 void renderPage(Page page)
          render the given page
 void renderSVGArea(SVGArea area)
          render the given SVG area
protected  void renderSVGDocument(org.w3c.dom.Document doc, int x, int y)
           
 void renderWordArea(WordArea area)
          render the given inline area
 void setComponent(java.awt.Component parent)
          Sets parent component which is used to set up the font.
 void setOptions(java.util.Hashtable options)
          set up renderer options
 void setPageNumber(int aValue)
           
 void setProducer(java.lang.String producer)
          set the producer of the rendering
 void setProgressListener(ProgressListener l)
           
 void setScaleFactor(double newScaleFactor)
           
 void setupFontInfo(FontInfo fontInfo)
          set up the given FontInfo
 void startRenderer(java.io.OutputStream outputStream)
           
 void stopRenderer(java.io.OutputStream outputStream)
           
 void transform(java.awt.Graphics2D g2d, double zoomPercent, double angle)
          To configure before print.
 
Methods inherited from class org.apache.fop.render.AbstractRenderer
renderAreaContainer, renderBlockArea, renderBodyAreaContainer, renderLineArea, renderSpanArea, setLogger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

pageWidth

protected int pageWidth

pageHeight

protected int pageHeight

scaleFactor

protected double scaleFactor

pageNumber

protected int pageNumber

pageList

protected java.util.Vector pageList

progressListener

protected ProgressListener progressListener

res

protected Translator res

fontNames

protected java.util.Hashtable fontNames

fontStyles

protected java.util.Hashtable fontStyles

saveColor

protected java.awt.Color saveColor

idReferences

protected IDReferences idReferences

currentFontName

protected java.lang.String currentFontName
The current (internal) font name

currentFontSize

protected int currentFontSize
The current font size in millipoints

currentRed

protected float currentRed
The current colour's red, green and blue component

currentGreen

protected float currentGreen

currentBlue

protected float currentBlue

parent

protected java.awt.Component parent
The parent component, used to set up the font. This is needed as FontSetup needs a live AWT component in order to generate valid font measures.

options

protected java.util.Hashtable options
options
Constructor Detail

AWTRenderer

public AWTRenderer(Translator aRes)
Method Detail

setOptions

public void setOptions(java.util.Hashtable options)
set up renderer options

setComponent

public void setComponent(java.awt.Component parent)
Sets parent component which is used to set up the font. This is needed as FontSetup needs a live AWT component in order to generate valid font measures.
Parameters:
parent - the live AWT component reference

getPageNumber

public int getPageNumber()

setPageNumber

public void setPageNumber(int aValue)

setScaleFactor

public void setScaleFactor(double newScaleFactor)

getScaleFactor

public double getScaleFactor()

getLastRenderedPage

public java.awt.image.BufferedImage getLastRenderedPage()

addLine

protected void addLine(int x1,
                       int y1,
                       int x2,
                       int y2,
                       int th,
                       float r,
                       float g,
                       float b)
add a line to the current stream
Parameters:
x1 - the start x location in millipoints
y1 - the start y location in millipoints
x2 - the end x location in millipoints
y2 - the end y location in millipoints
th - the thickness in millipoints
r - the red component
g - the green component
b - the blue component

addRect

protected void addRect(int x,
                       int y,
                       int w,
                       int h,
                       float r,
                       float g,
                       float b)
draw a rectangle
Parameters:
x - the x position of left edge in millipoints
y - the y position of top edge in millipoints
w - the width in millipoints
h - the height in millipoints
r - the red component
g - the green component
b - the blue component

addRect

protected void addRect(int x,
                       int y,
                       int w,
                       int h,
                       float r,
                       float g,
                       float b,
                       float fr,
                       float fg,
                       float fb)
draw a filled rectangle
Parameters:
x - the x position of left edge in millipoints
y - the y position of top edge in millipoints
w - the width in millipoints
h - the height in millipoints
r - the red component of edges
g - the green component of edges
b - the blue component of edges
fr - the red component of the fill
fg - the green component of the fill
fb - the blue component of the fill

addRect

protected void addRect(int x,
                       int y,
                       int w,
                       int h,
                       boolean drawAsOutline)
draw a filled rectangle in the current color
Parameters:
x - the x position of left edge in millipoints
y - the y position of top edge in millipoints
w - the width in millipoints
h - the height in millipoints
drawAsOutline - true for draw, false for fill

addFilledRect

protected void addFilledRect(int x,
                             int y,
                             int w,
                             int h,
                             ColorType col)
Description copied from class: AbstractRenderer
Add a filled rectangle to the current stream This default implementation calls addRect using the same color for fill and border.
Overrides:
addFilledRect in class AbstractRenderer
Following copied from class: org.apache.fop.render.AbstractRenderer
Parameters:
x - the x position of left edge in millipoints
y - the y position of top edge in millipoints
w - the width in millipoints
h - the height in millipoints
fill - the fill color/gradient

transform

public void transform(java.awt.Graphics2D g2d,
                      double zoomPercent,
                      double angle)
To configure before print. Choose pages Zoom factor Page format / Landscape or Portrait

drawFrame

protected void drawFrame()

getPageCount

public int getPageCount()
Retrieve the number of pages in this document.
Returns:
the number of pages

removePage

public void removePage(int page)

render

public void render(int aPageNumber)

render

public void render(Page page,
                   java.io.OutputStream stream)
            throws java.io.IOException
Description copied from interface: Renderer
render the given area tree to the given stream

render

public void render(Page page)
            throws java.io.IOException

renderPage

public void renderPage(Page page)
Description copied from interface: Renderer
render the given page

doFrame

protected void doFrame(Area area)
Overrides:
doFrame in class AbstractRenderer

getBounds

protected java.awt.geom.Rectangle2D getBounds(Area a)

setupFontInfo

public void setupFontInfo(FontInfo fontInfo)
Description copied from interface: Renderer
set up the given FontInfo

renderDisplaySpace

public void renderDisplaySpace(DisplaySpace space)
Description copied from interface: Renderer
render the given display space

renderImageArea

public void renderImageArea(ImageArea area)
Description copied from interface: Renderer
render the given image area

renderWordArea

public void renderWordArea(WordArea area)
Description copied from interface: Renderer
render the given inline area

renderInlineSpace

public void renderInlineSpace(InlineSpace space)
Description copied from interface: Renderer
render the given inline space

renderLeaderArea

public void renderLeaderArea(LeaderArea area)
render leader area into AWT
Parameters:
area - area to render

renderSVGArea

public void renderSVGArea(SVGArea area)
Description copied from interface: Renderer
render the given SVG area

renderSVGDocument

protected void renderSVGDocument(org.w3c.dom.Document doc,
                                 int x,
                                 int y)

setProducer

public void setProducer(java.lang.String producer)
Description copied from interface: Renderer
set the producer of the rendering

print

public int print(java.awt.Graphics g,
                 java.awt.print.PageFormat pageFormat,
                 int pageIndex)
          throws java.awt.print.PrinterException
Specified by:
print in interface java.awt.print.Printable

getNumberOfPages

public int getNumberOfPages()
Specified by:
getNumberOfPages in interface java.awt.print.Pageable

getPageFormat

public java.awt.print.PageFormat getPageFormat(int pageIndex)
                                        throws java.lang.IndexOutOfBoundsException
Specified by:
getPageFormat in interface java.awt.print.Pageable

getPrintable

public java.awt.print.Printable getPrintable(int pageIndex)
                                      throws java.lang.IndexOutOfBoundsException
Specified by:
getPrintable in interface java.awt.print.Pageable

setProgressListener

public void setProgressListener(ProgressListener l)

colorType2Color

public static java.awt.Color colorType2Color(ColorType ct)

renderForeignObjectArea

public void renderForeignObjectArea(ForeignObjectArea area)
Draws an image. TODO: protect other image formats (JIMI)

startRenderer

public void startRenderer(java.io.OutputStream outputStream)
                   throws java.io.IOException

stopRenderer

public void stopRenderer(java.io.OutputStream outputStream)
                  throws java.io.IOException


Copyright © 1999-2001 Apache Software Foundation. All Rights Reserved.