public class EditorPageable
extends java.lang.Object
implements java.awt.print.Pageable, java.awt.print.Printable
EditorPageable is an implementation of the
Pageable interface to support printed output of a
BasicDocument optionally using the syntax highlighting
features of the editor framework.
Use the PrintOptions class to control the appearance
of the printed output, whether we print out the syntax highlighting
foreground colors and font styles, line numbers, page numbers,
wrapping behavior, and so on. Note that this implementation will
not print out highlights, nor will it print out any background
colors. In case a syntax highlight foreground color is
Color.white, black will be used in its place.
| Constructor and Description |
|---|
EditorPageable(java.lang.String fileName,
BasicDocument document,
PrintOptions printOptions,
java.awt.print.PageFormat pageFormat)
Construct a new
EditorPageable that will be used for
printing a document. |
| Modifier and Type | Method and Description |
|---|---|
int |
getNumberOfPages()
Returns the number of pages in the set.
|
java.awt.print.PageFormat |
getPageFormat(int pageIndex)
Returns the
PageFormat of the page specified by
pageIndex. |
java.awt.print.Printable |
getPrintable(int pageIndex)
Returns the
Printable instance responsible for
rendering the page specified by pageIndex. |
static void |
incrementNumber(char[] number)
Utility routine which, given a char array containing the
string representation of a number, will increment the number
by one.
|
protected void |
invalidate()
Invalidates our repagination info.
|
protected boolean |
isPageIndexValid(int pageIndex)
Checks if a page index is valid.
|
static int |
numDigits(int number)
Utility routine to compute the number of digits in the specified
number.
|
int |
print(java.awt.Graphics graphics,
java.awt.print.PageFormat pageFormat,
int pageIndex)
Prints the page at the specified index into the specified
Graphics context in the specified format. |
protected void |
printHeader(java.awt.Graphics graphics,
java.awt.print.PageFormat pageFormat,
int pageIndex)
Print out the header for the printed output, based on the settings
of the print options.
|
protected void |
printLineNumbers(java.awt.Graphics graphics,
java.awt.print.PageFormat pageFormat,
int pageIndex)
Print out the line numbers on the left side of the page, depending
on the settings in the print options.
|
protected void |
printText(java.awt.Graphics graphics,
java.awt.print.PageFormat pageFormat,
int pageIndex)
Print out the text content in the main part of the page.
|
protected void |
printWrappedSymbols(java.awt.Graphics graphics,
java.awt.print.PageFormat pageFormat,
int pageIndex)
Print out the wrapped symbols on the right, if we are performing
line wrapping.
|
void |
repaginate()
Force a repagination to occur.
|
protected void |
repaginateIfNeeded()
Performs a repagination if we don't have any page info currently.
|
static void |
setNumber(char[] numberChars,
int number)
Utility routine which, given a char array and a number, will
convert the number into a char[] representation, and set it
into the provided array, left-padding with spaces to fit
the width properly.
|
void |
setPageFormat(java.awt.print.PageFormat pageFormat)
Changes the page format of the document for printing.
|
void |
setPrintOptions(PrintOptions printOptions)
Sets the print options for printing.
|
protected void |
verifyPageIndexValid(int pageIndex)
Verifies that a page index is valid.
|
public EditorPageable(java.lang.String fileName,
BasicDocument document,
PrintOptions printOptions,
java.awt.print.PageFormat pageFormat)
EditorPageable that will be used for
printing a document. The specified file name is used for
printing the file header (if enabled), and the print options used
for controlling the appearance of the output. The
LanguageSupport of the document will be used to
determine the syntax highlight rendering used.fileName - the name of the file for the file headerdocument - the document to printprintOptions - the printing options to usepageFormat - the format of a pagepublic void setPrintOptions(PrintOptions printOptions)
printOptions - the print options to usepublic void setPageFormat(java.awt.print.PageFormat pageFormat)
public void repaginate()
protected void invalidate()
protected void repaginateIfNeeded()
protected boolean isPageIndexValid(int pageIndex)
pageIndex - the page to checkprotected void verifyPageIndexValid(int pageIndex)
throws java.lang.IndexOutOfBoundsException
pageIndex - the page to checkjava.lang.IndexOutOfBoundsException - if the page is invalidpublic int getNumberOfPages()
Pageable
implementations return the true number of pages rather than the
UNKNOWN_NUMBER_OF_PAGES constant.getNumberOfPages in interface java.awt.print.PageablePageable.public java.awt.print.PageFormat getPageFormat(int pageIndex)
throws java.lang.IndexOutOfBoundsException
PageFormat of the page specified by
pageIndex.getPageFormat in interface java.awt.print.PageablepageIndex - the zero based index of the page whose
PageFormat is being requestedPageFormat describing the size and
orientation.IndexOutOfBoundsException - the
Pageable does not contain the requested page.java.lang.IndexOutOfBoundsExceptionpublic java.awt.print.Printable getPrintable(int pageIndex)
throws java.lang.IndexOutOfBoundsException
Printable instance responsible for
rendering the page specified by pageIndex.getPrintable in interface java.awt.print.PageablepageIndex - the zero based index of the page whose
Printable is being requestedPrintable that renders the page.IndexOutOfBoundsException - the
Pageable does not contain the requested page.java.lang.IndexOutOfBoundsExceptionpublic int print(java.awt.Graphics graphics,
java.awt.print.PageFormat pageFormat,
int pageIndex)
throws java.awt.print.PrinterException
Graphics context in the specified format. A
PrinterJob calls the Printable
interface to request that a page be rendered into the context
specified by graphics. The format of the page to be
drawn is specified by pageFormat. The zero based
index of the requested page is specified by
pageIndex. If the requested page does not exist
then this method returns NO_SUCH_PAGE; otherwise PAGE_EXISTS is
returned. The Graphics class or subclass implements
the PrinterGraphics interface to provide additional
information. If the Printable object aborts the
print job then it throws a PrinterException.print in interface java.awt.print.Printablegraphics - the context into which the page is drawnpageFormat - the size and orientation of the page being drawnpageIndex - the zero based index of the page to be drawnpageIndex specifies a
non-existent page.java.awt.print.PrinterException - thrown when the print job is terminated.protected void printHeader(java.awt.Graphics graphics,
java.awt.print.PageFormat pageFormat,
int pageIndex)
graphics - the context into which the page is drawnpageFormat - the size and orientation of the page being drawnpageIndex - the zero based index of the page to be drawnprotected void printLineNumbers(java.awt.Graphics graphics,
java.awt.print.PageFormat pageFormat,
int pageIndex)
graphics - the context into which the page is drawnpageFormat - the size and orientation of the page being drawnpageIndex - the zero based index of the page to be drawnprotected void printWrappedSymbols(java.awt.Graphics graphics,
java.awt.print.PageFormat pageFormat,
int pageIndex)
graphics - the context into which the page is drawnpageFormat - the size and orientation of the page being drawnpageIndex - the zero based index of the page to be drawnprotected void printText(java.awt.Graphics graphics,
java.awt.print.PageFormat pageFormat,
int pageIndex)
graphics - the context into which the page is drawnpageFormat - the size and orientation of the page being drawnpageIndex - the zero based index of the page to be drawnpublic static int numDigits(int number)
number - the number to calculate the number of digits forpublic static void setNumber(char[] numberChars,
int number)
numberChars - the char array to store the result innumber - the integer to get the representation ofpublic static void incrementNumber(char[] number)
number - the char array to store the result in