fi.hut.tml.xsmiles.mlfc.xslfo.render.jdk12
Class AWTRenderer2

java.lang.Object
  extended byfi.hut.tml.xsmiles.mlfc.xslfo.render.jdk12.AWTRenderer2
All Implemented Interfaces:
java.awt.print.Pageable, java.awt.print.Printable, org.apache.fop.render.Renderer
Direct Known Subclasses:
XSmilesAWTRenderer

public class AWTRenderer2
extends java.lang.Object
implements org.apache.fop.render.Renderer, 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.


Field Summary
protected  int currentAreaContainerXPosition
          The horizontal position of the current area container
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  int currentXPosition
          The current horizontal position in millipoints from left
protected  int currentYPosition
          The current vertical position in millipoints from bottom
protected  java.util.Hashtable fontNames
           
protected  java.util.Hashtable fontStyles
           
protected  java.awt.Graphics2D graphics
           
protected  org.apache.fop.datatypes.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  org.apache.fop.viewer.ProgressListener progressListener
           
protected  org.apache.fop.viewer.Translator res
           
protected  java.awt.Color saveColor
           
protected  double scaleFactor
           
 
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
AWTRenderer2(org.apache.fop.viewer.Translator aRes)
           
 
Method Summary
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(org.apache.fop.datatypes.ColorType ct)
           
protected  void drawFrame()
           
protected  java.awt.geom.Rectangle2D getBounds(org.apache.fop.layout.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(org.apache.fop.layout.Page page)
           
 void render(org.apache.fop.layout.Page page, java.io.OutputStream stream)
           
 void renderAreaContainer(org.apache.fop.layout.AreaContainer area)
           
 void renderBlockArea(org.apache.fop.layout.BlockArea area)
           
 void renderBodyAreaContainer(org.apache.fop.layout.BodyAreaContainer area)
           
 void renderDisplaySpace(org.apache.fop.layout.DisplaySpace space)
           
 void renderForeignObjectArea(org.apache.fop.layout.inline.ForeignObjectArea area)
          Draws an image.
 void renderImageArea(org.apache.fop.image.ImageArea area)
           
 void renderInlineSpace(org.apache.fop.layout.inline.InlineSpace space)
           
 void renderLeaderArea(org.apache.fop.layout.inline.LeaderArea area)
          render leader area into AWT
 void renderLineArea(org.apache.fop.layout.LineArea area)
           
 void renderPage(org.apache.fop.layout.Page page)
           
 void renderSpanArea(org.apache.fop.layout.SpanArea area)
           
 void renderSVGArea(org.apache.fop.svg.SVGArea area)
           
protected  void renderSVGDocument(org.w3c.dom.Document doc, int x, int y)
           
 void renderWordArea(org.apache.fop.layout.inline.WordArea 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)
           
 void setProgressListener(org.apache.fop.viewer.ProgressListener l)
           
 void setScaleFactor(double newScaleFactor)
           
 void setupFontInfo(org.apache.fop.layout.FontInfo 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 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 org.apache.fop.viewer.ProgressListener progressListener

res

protected org.apache.fop.viewer.Translator res

fontNames

protected java.util.Hashtable fontNames

fontStyles

protected java.util.Hashtable fontStyles

saveColor

protected java.awt.Color saveColor

idReferences

protected org.apache.fop.datatypes.IDReferences idReferences

graphics

protected java.awt.Graphics2D graphics

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.


currentYPosition

protected int currentYPosition
The current vertical position in millipoints from bottom


currentXPosition

protected int currentXPosition
The current horizontal position in millipoints from left


currentAreaContainerXPosition

protected int currentAreaContainerXPosition
The horizontal position of the current area container


options

protected java.util.Hashtable options
options

Constructor Detail

AWTRenderer2

public AWTRenderer2(org.apache.fop.viewer.Translator aRes)
Method Detail

setOptions

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

Specified by:
setOptions in interface org.apache.fop.render.Renderer

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

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(org.apache.fop.layout.Page page,
                   java.io.OutputStream stream)
            throws java.io.IOException
Specified by:
render in interface org.apache.fop.render.Renderer
Throws:
java.io.IOException

render

public void render(org.apache.fop.layout.Page page)
            throws java.io.IOException
Throws:
java.io.IOException

renderPage

public void renderPage(org.apache.fop.layout.Page page)
Specified by:
renderPage in interface org.apache.fop.render.Renderer

renderAreaContainer

public void renderAreaContainer(org.apache.fop.layout.AreaContainer area)
Specified by:
renderAreaContainer in interface org.apache.fop.render.Renderer

renderBodyAreaContainer

public void renderBodyAreaContainer(org.apache.fop.layout.BodyAreaContainer area)
Specified by:
renderBodyAreaContainer in interface org.apache.fop.render.Renderer

renderSpanArea

public void renderSpanArea(org.apache.fop.layout.SpanArea area)
Specified by:
renderSpanArea in interface org.apache.fop.render.Renderer

getBounds

protected java.awt.geom.Rectangle2D getBounds(org.apache.fop.layout.Area a)

renderBlockArea

public void renderBlockArea(org.apache.fop.layout.BlockArea area)
Specified by:
renderBlockArea in interface org.apache.fop.render.Renderer

setupFontInfo

public void setupFontInfo(org.apache.fop.layout.FontInfo fontInfo)
Specified by:
setupFontInfo in interface org.apache.fop.render.Renderer

renderDisplaySpace

public void renderDisplaySpace(org.apache.fop.layout.DisplaySpace space)
Specified by:
renderDisplaySpace in interface org.apache.fop.render.Renderer

renderImageArea

public void renderImageArea(org.apache.fop.image.ImageArea area)
Specified by:
renderImageArea in interface org.apache.fop.render.Renderer

renderWordArea

public void renderWordArea(org.apache.fop.layout.inline.WordArea area)
Specified by:
renderWordArea in interface org.apache.fop.render.Renderer

renderInlineSpace

public void renderInlineSpace(org.apache.fop.layout.inline.InlineSpace space)
Specified by:
renderInlineSpace in interface org.apache.fop.render.Renderer

renderLineArea

public void renderLineArea(org.apache.fop.layout.LineArea area)
Specified by:
renderLineArea in interface org.apache.fop.render.Renderer

renderLeaderArea

public void renderLeaderArea(org.apache.fop.layout.inline.LeaderArea area)
render leader area into AWT

Specified by:
renderLeaderArea in interface org.apache.fop.render.Renderer
Parameters:
area - area to render

renderSVGArea

public void renderSVGArea(org.apache.fop.svg.SVGArea area)
Specified by:
renderSVGArea in interface org.apache.fop.render.Renderer

renderSVGDocument

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

setProducer

public void setProducer(java.lang.String producer)
Specified by:
setProducer in interface org.apache.fop.render.Renderer

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
Throws:
java.awt.print.PrinterException

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
Throws:
java.lang.IndexOutOfBoundsException

getPrintable

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

setProgressListener

public void setProgressListener(org.apache.fop.viewer.ProgressListener l)

colorType2Color

public static java.awt.Color colorType2Color(org.apache.fop.datatypes.ColorType ct)

renderForeignObjectArea

public void renderForeignObjectArea(org.apache.fop.layout.inline.ForeignObjectArea area)
Draws an image. TODO: protect other image formats (JIMI)

Specified by:
renderForeignObjectArea in interface org.apache.fop.render.Renderer

startRenderer

public void startRenderer(java.io.OutputStream outputStream)
                   throws java.io.IOException
Specified by:
startRenderer in interface org.apache.fop.render.Renderer
Throws:
java.io.IOException

stopRenderer

public void stopRenderer(java.io.OutputStream outputStream)
                  throws java.io.IOException
Specified by:
stopRenderer in interface org.apache.fop.render.Renderer
Throws:
java.io.IOException


X-Smiles 1.2