com.jasperassistant.designer.viewer
Class ReportViewer

java.lang.Object
  extended bycom.jasperassistant.designer.viewer.ReportViewer
All Implemented Interfaces:
IReportViewer

public class ReportViewer
extends java.lang.Object
implements IReportViewer

SWT based report viewer implementation.

Author:
Peter Severin (peter_p_s@users.sourceforge.net)

Field Summary
 
Fields inherited from interface com.jasperassistant.designer.viewer.IReportViewer
ZOOM_MODE_ACTUAL_SIZE, ZOOM_MODE_FIT_HEIGHT, ZOOM_MODE_FIT_PAGE, ZOOM_MODE_FIT_WIDTH, ZOOM_MODE_NONE
 
Constructor Summary
ReportViewer()
          Default constructor.
ReportViewer(int style)
          Constructor that allows to specify a SWT control style.
 
Method Summary
 void addHyperlinkListener(net.sf.jasperreports.view.JRHyperlinkListener listener)
          Registers a hyperlink click listener that will be notified when user clicks a hyperlink.
 void addReportViewerListener(IReportViewerListener listener)
          Register a report viewer listener that will observe the viewer state changes
 boolean canChangeZoom()
          Checks the necessary preconditions for zoom changing
 boolean canGotoFirstPage()
          Checks the preconditions for first page positioning
 boolean canGotoLastPage()
          Checks the preconditions for last page positioning
 boolean canGotoNextPage()
          Checks the preconditions for next page positioning
 boolean canGotoPreviousPage()
          Checks the preconditions for previous page positioning
 boolean canReload()
          Checks whether the document can be reloaded.
 boolean canZoomIn()
          Checks the zoom-in operation preconditions
 boolean canZoomOut()
          Checks the zoom in preconditions
 org.eclipse.swt.widgets.Control createControl(org.eclipse.swt.widgets.Composite parent)
          Creates the SWT control for the report viewer.
 net.sf.jasperreports.engine.JasperPrint getDocument()
          Returns the jasper print document
 net.sf.jasperreports.view.JRHyperlinkListener[] getHyperlinkListeners()
          Returns registered hyperlink listeners
 int getPageIndex()
          Returns the current page index.
 java.lang.String getReason()
          Returns the message that explains the reason that the document is missing.
 double getZoom()
          Returns the current zoom level
 double[] getZoomLevels()
          Returns an array with available zoom levels
 int getZoomMode()
          Returns the current zoom mode
 void gotoFirstPage()
          Positions the viewer on the first page in the document
 void gotoLastPage()
          Positions the viewer on the last page in the document
 void gotoNextPage()
          Positions the viewer on the next page in the document
 void gotoPreviousPage()
          Positions the viewer on the previous page in the document
 boolean hasDocument()
          Returns true if there is a jasper print document set
 void loadDocument(java.lang.String fileName, boolean xml)
          Loads the document from the given file.
 void reload()
          Reloads the report.
 void removeHyperlinkListener(net.sf.jasperreports.view.JRHyperlinkListener listener)
          Removes a previously registered hyperlink click listener
 void removeReportViewerListener(IReportViewerListener listener)
          Removes a previously registered report viewer listener
 void setDocument(net.sf.jasperreports.engine.JasperPrint document)
          Sets the jasper print document
 void setPageIndex(int pageIndex)
          Sets the current page index.
 void setZoom(double zoom)
          Sets the zoom level
 void setZoomLevels(double[] levels)
          Sets the available zoom levels
 void setZoomMode(int zoomMode)
          Sets the zoom mode.
 void unsetDocument(java.lang.String reason)
          Sets to null the currently set document.
 void zoomIn()
          Zooms in the viewer
 void zoomOut()
          Zooms out the viewer
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ReportViewer

public ReportViewer()
Default constructor. The default style will be used for the SWT control associated to the viewer.


ReportViewer

public ReportViewer(int style)
Constructor that allows to specify a SWT control style. For possible styles see the Canvas class. Most frequently you will wont to specify the SWT.NONE style.

Parameters:
style - the style
Method Detail

setDocument

public void setDocument(net.sf.jasperreports.engine.JasperPrint document)
Description copied from interface: IReportViewer
Sets the jasper print document

Specified by:
setDocument in interface IReportViewer
Parameters:
document - document to set. Must be not null.
See Also:
IReportViewer.setDocument(net.sf.jasperreports.engine.JasperPrint)

getDocument

public net.sf.jasperreports.engine.JasperPrint getDocument()
Description copied from interface: IReportViewer
Returns the jasper print document

Specified by:
getDocument in interface IReportViewer
Returns:
the jasper print docuemnt or null if none
See Also:
IReportViewer.getDocument()

hasDocument

public boolean hasDocument()
Description copied from interface: IReportViewer
Returns true if there is a jasper print document set

Specified by:
hasDocument in interface IReportViewer
Returns:
true if the document is set
See Also:
IReportViewer.hasDocument()

unsetDocument

public void unsetDocument(java.lang.String reason)
Description copied from interface: IReportViewer
Sets to null the currently set document.

Specified by:
unsetDocument in interface IReportViewer
Parameters:
reason - the reason for the missing document. Can be null.
See Also:
IReportViewer.unsetDocument(java.lang.String)

getReason

public java.lang.String getReason()
Description copied from interface: IReportViewer
Returns the message that explains the reason that the document is missing.

Specified by:
getReason in interface IReportViewer
Returns:
the reason or null if none.
See Also:
IReportViewer.getReason()

setZoom

public void setZoom(double zoom)
Description copied from interface: IReportViewer
Sets the zoom level

Specified by:
setZoom in interface IReportViewer
Parameters:
zoom - zoom level
See Also:
IReportViewer.setZoom(double)

canChangeZoom

public boolean canChangeZoom()
Description copied from interface: IReportViewer
Checks the necessary preconditions for zoom changing

Specified by:
canChangeZoom in interface IReportViewer
Returns:
true if the zoom level and mode can be changed
See Also:
IReportViewer.canChangeZoom()

getZoom

public double getZoom()
Description copied from interface: IReportViewer
Returns the current zoom level

Specified by:
getZoom in interface IReportViewer
Returns:
the zoom level
See Also:
IReportViewer.getZoom()

setZoomMode

public void setZoomMode(int zoomMode)
Description copied from interface: IReportViewer
Sets the zoom mode. One of the predefined ZOOM_MODE constants must be used.

Specified by:
setZoomMode in interface IReportViewer
Parameters:
zoomMode - the zoom mode
See Also:
IReportViewer.setZoomMode(int)

getZoomMode

public int getZoomMode()
Description copied from interface: IReportViewer
Returns the current zoom mode

Specified by:
getZoomMode in interface IReportViewer
Returns:
the zoom mode
See Also:
IReportViewer.getZoomMode()

getPageIndex

public int getPageIndex()
Description copied from interface: IReportViewer
Returns the current page index.

Specified by:
getPageIndex in interface IReportViewer
Returns:
the page index
See Also:
IReportViewer.getPageIndex()

setPageIndex

public void setPageIndex(int pageIndex)
Description copied from interface: IReportViewer
Sets the current page index.

Specified by:
setPageIndex in interface IReportViewer
Parameters:
pageIndex - the page index
See Also:
IReportViewer.setPageIndex(int)

canGotoFirstPage

public boolean canGotoFirstPage()
Description copied from interface: IReportViewer
Checks the preconditions for first page positioning

Specified by:
canGotoFirstPage in interface IReportViewer
Returns:
true if the viewer can be positioned to the first page.
See Also:
IReportViewer.canGotoFirstPage()

gotoFirstPage

public void gotoFirstPage()
Description copied from interface: IReportViewer
Positions the viewer on the first page in the document

Specified by:
gotoFirstPage in interface IReportViewer
See Also:
IReportViewer.gotoFirstPage()

canGotoLastPage

public boolean canGotoLastPage()
Description copied from interface: IReportViewer
Checks the preconditions for last page positioning

Specified by:
canGotoLastPage in interface IReportViewer
Returns:
true if the viewer can be positioned to the last page.
See Also:
IReportViewer.canGotoLastPage()

gotoLastPage

public void gotoLastPage()
Description copied from interface: IReportViewer
Positions the viewer on the last page in the document

Specified by:
gotoLastPage in interface IReportViewer
See Also:
IReportViewer.gotoLastPage()

canGotoNextPage

public boolean canGotoNextPage()
Description copied from interface: IReportViewer
Checks the preconditions for next page positioning

Specified by:
canGotoNextPage in interface IReportViewer
Returns:
true if the viewer can be positioned to the next page.
See Also:
IReportViewer.canGotoNextPage()

gotoNextPage

public void gotoNextPage()
Description copied from interface: IReportViewer
Positions the viewer on the next page in the document

Specified by:
gotoNextPage in interface IReportViewer
See Also:
IReportViewer.gotoNextPage()

canGotoPreviousPage

public boolean canGotoPreviousPage()
Description copied from interface: IReportViewer
Checks the preconditions for previous page positioning

Specified by:
canGotoPreviousPage in interface IReportViewer
Returns:
true if the viewer can be positioned to the previous page.
See Also:
IReportViewer.canGotoPreviousPage()

gotoPreviousPage

public void gotoPreviousPage()
Description copied from interface: IReportViewer
Positions the viewer on the previous page in the document

Specified by:
gotoPreviousPage in interface IReportViewer
See Also:
IReportViewer.gotoPreviousPage()

addReportViewerListener

public void addReportViewerListener(IReportViewerListener listener)
Description copied from interface: IReportViewer
Register a report viewer listener that will observe the viewer state changes

Specified by:
addReportViewerListener in interface IReportViewer
Parameters:
listener - the listener
See Also:
IReportViewer.addReportViewerListener(com.jasperassistant.designer.viewer.IReportViewerListener)

removeReportViewerListener

public void removeReportViewerListener(IReportViewerListener listener)
Description copied from interface: IReportViewer
Removes a previously registered report viewer listener

Specified by:
removeReportViewerListener in interface IReportViewer
Parameters:
listener - the listener
See Also:
IReportViewer.removeReportViewerListener(com.jasperassistant.designer.viewer.IReportViewerListener)

reload

public void reload()
Description copied from interface: IReportViewer
Reloads the report. The reload will be performed if only the report was loaded through the loadDocument method.

Specified by:
reload in interface IReportViewer
See Also:
IReportViewer.reload()

canReload

public boolean canReload()
Description copied from interface: IReportViewer
Checks whether the document can be reloaded.

Specified by:
canReload in interface IReportViewer
Returns:
true if the current document can be reloaded
See Also:
IReportViewer.canReload()

loadDocument

public void loadDocument(java.lang.String fileName,
                         boolean xml)
Description copied from interface: IReportViewer
Loads the document from the given file. The file can contain either a serialized JasperPrint object or a jrprint xml document. The format is controlled by the xml boolean parameter.

Specified by:
loadDocument in interface IReportViewer
Parameters:
fileName - the file name
xml - flag that indicates the type of file type. If true, the file contains an xml and a serialized object otherwise.
See Also:
IReportViewer.loadDocument(java.lang.String, boolean)

createControl

public org.eclipse.swt.widgets.Control createControl(org.eclipse.swt.widgets.Composite parent)
Creates the SWT control for the report viewer. Later calls to this method will return the same instance of the control.

Parameters:
parent - the parent
Returns:
the created control

getZoomLevels

public double[] getZoomLevels()
Description copied from interface: IReportViewer
Returns an array with available zoom levels

Specified by:
getZoomLevels in interface IReportViewer
Returns:
a non-empty array of configured zoom levels
See Also:
IReportViewer.getZoomLevels()

setZoomLevels

public void setZoomLevels(double[] levels)
Description copied from interface: IReportViewer
Sets the available zoom levels

Specified by:
setZoomLevels in interface IReportViewer
Parameters:
levels - a non-null and non-empty array of zoom levels
See Also:
IReportViewer.setZoomLevels(double[])

zoomIn

public void zoomIn()
Description copied from interface: IReportViewer
Zooms in the viewer

Specified by:
zoomIn in interface IReportViewer
See Also:
IReportViewer.zoomIn()

canZoomIn

public boolean canZoomIn()
Description copied from interface: IReportViewer
Checks the zoom-in operation preconditions

Specified by:
canZoomIn in interface IReportViewer
Returns:
true if the viewer can be zoomed in
See Also:
IReportViewer.canZoomIn()

zoomOut

public void zoomOut()
Description copied from interface: IReportViewer
Zooms out the viewer

Specified by:
zoomOut in interface IReportViewer
See Also:
IReportViewer.zoomOut()

canZoomOut

public boolean canZoomOut()
Description copied from interface: IReportViewer
Checks the zoom in preconditions

Specified by:
canZoomOut in interface IReportViewer
Returns:
true if the viewer can be zoomed out
See Also:
IReportViewer.canZoomOut()

addHyperlinkListener

public void addHyperlinkListener(net.sf.jasperreports.view.JRHyperlinkListener listener)
Description copied from interface: IReportViewer
Registers a hyperlink click listener that will be notified when user clicks a hyperlink.

Specified by:
addHyperlinkListener in interface IReportViewer
Parameters:
listener - the listener to add
See Also:
IReportViewer.addHyperlinkListener(net.sf.jasperreports.view.JRHyperlinkListener)

removeHyperlinkListener

public void removeHyperlinkListener(net.sf.jasperreports.view.JRHyperlinkListener listener)
Description copied from interface: IReportViewer
Removes a previously registered hyperlink click listener

Specified by:
removeHyperlinkListener in interface IReportViewer
Parameters:
listener - the listener to remove
See Also:
IReportViewer.removeHyperlinkListener(net.sf.jasperreports.view.JRHyperlinkListener)

getHyperlinkListeners

public net.sf.jasperreports.view.JRHyperlinkListener[] getHyperlinkListeners()
Description copied from interface: IReportViewer
Returns registered hyperlink listeners

Specified by:
getHyperlinkListeners in interface IReportViewer
Returns:
a non-null array of listeners
See Also:
IReportViewer.getHyperlinkListeners()