Package com.reportmill
Class RMViewer
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- com.reportmill.RMViewer
-
- All Implemented Interfaces:
RMDocument.DocListener
,java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
- Direct Known Subclasses:
Gallery.GViewer
,RMEditor
,RMTrackballControl
,Scene3DTool.Scene3DControl
public class RMViewer extends javax.swing.JComponent implements RMDocument.DocListener
The RMViewer class is a JComponent subclass that can be used in Swing applications to display and/or print an RMDocument.You might use it like this to simply print a document:
new RMViewer(aDocument).print();
Or you might want to allocate one and add it to a Swing component hierarchy:
RMViewer viewer = new RMViewer(); JScrollPane scrollPane = new JScrollPane(viewer); myFrame.getContentPane().add(scrollPane, Border.CENTER); viewer.setDocument(new RMDocument(aSource));
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static java.awt.Color
GridColor
static java.awt.Color
MarginColor
static int
PRINT_MODE_RASTER
static int
PRINT_MODE_VECTOR
-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description RMPoint
convertPointFromShape(RMPoint aPoint, RMShape aShape)
Returns a point converted from the coordinate space of the given shape to viewer coords.RMPoint
convertPointToShape(java.awt.geom.Point2D aPoint, RMShape aShape)
Returns a point converted from viewer coords to the coordinate space of the given shape.RMRect
convertRectFromShape(RMRect aRect, RMShape aShape)
Returns a rect converted from the coordinate space of the given shape to viewer coords.RMRect
convertRectToShape(RMRect aRect, RMShape aShape)
Returns a rect converted from viewer coords to the coordinate space of the given shape.void
docShapeBoundsChanged(RMDocument aDoc, RMShape aShape)
Doc listener method - called by editor when making bounds changes.void
docShapeNeedsRepaint(RMDocument aDoc, RMShape aShape)
Doc listener method - called before a shape makes a visual change.void
docUndoerAddDirtyObject(RMDocument aDoc, RMObject anObj)
Doc listener method - RMViewer ignores it, but RMEditor calls setUndoSelectedObjects.boolean
drawsBackground()
Returns whether or not the gutter, page background & dropshadow get drawn.void
flushGraphics()
This method repaints the total bounds of shapes that have previously been registered by shapeNeedsRepaint.java.awt.print.Book
getBook(int orientation, java.awt.print.Paper paper)
Returns a java.awt.print.Book, suitable for AWT printing.RMRect
getDirtyRect()
Returns the dirty rect of shapes currently registered with shapeNeedsRepaint (and clears _dirtyShapes).RMDocument
getDocument()
Returns the RMDocument associated with this viewer.RMRect
getDocumentBounds()
Returns the bounds of the viewer document.java.lang.String
getFilename()
Returns filename associated with viewer's document (or null if the document didn't come from a file).java.awt.Dimension
getMinimumSize()
Standard minimum size method.RMRect
getPageBounds()
Returns the bounds of the viewer document's selected page.byte
getPageLayout()
Returns the page layout of the viewer's document.java.awt.Dimension
getPreferredSize()
Returns the optimal size of the viewer.int
getPrintingDPI()
int
getPrintingMode()
java.awt.RenderingHints
getRenderingHints()
Returns the rendering hings used to paint the view.RMShape
getSelectedPage()
Returns the currently selected page shape.int
getSelectedPageIndex()
Returns the index of the current visiable document page.RMShape
getShapeAtPoint(java.awt.geom.Point2D aPoint, boolean goDeep)
Returns the first shape hit by the given point.RMShapePainter
getShapePainter()
Returns the object that is actually responsible for paining shapes in the viewer.boolean
getShapeRepaintEnabled()
Returns whether changes to shapes cause repaints.java.awt.geom.AffineTransform
getTransformFromShape(RMShape aShape)
Returns the transform from given shape to viewer.RMUndoer
getUndoer()
Returns the undoer associated with the viewer's document.float
getZoomFactor()
Returns the viewer's zoom factor (1 by default).void
mouseDragged(java.awt.event.MouseEvent anEvent)
Handle mouse dragged event.void
mouseMoved(java.awt.event.MouseEvent anEvent)
Handle mouse moved event.void
mousePressed(java.awt.event.MouseEvent anEvent)
Handle mouse pressed event.void
mouseReleased(java.awt.event.MouseEvent anEvent)
Handle mouse released event.void
pageBack()
Selects the previous page.void
pageForward()
Selects the next page.void
paintComponent(java.awt.Graphics g)
Overrides JComponent implementation to paint viewer shapes and page, margin, grid, etc.void
paintComponentAbove(java.awt.Graphics2D g)
Provides a hook for subclasses to paint above standard viewer drawing.void
performActionURLClick(java.lang.String aURL)
Viewer callback - called when shape with URL is clicked (opens URL).void
print()
This method tells the RMViewer to print by running the print dialog (configured to the default printer).void
print(java.lang.String aPrinterName, boolean runPanel)
This method tells the RMViewer to print to the printer with the given printer name (use null for default printer).void
print2()
void
print2(java.lang.String aPrinterName, boolean runPanel)
protected void
processMouseEvent(java.awt.event.MouseEvent anEvent)
Handle mouse events.protected void
processMouseMotionEvent(java.awt.event.MouseEvent anEvent)
void
repaint(RMRect aRect)
Requests a repaint for the area represented by the given rect.void
runZoomPanel()
Runs a dialog panel to request a percentage zoom (which is then set with setZoomFactor).void
setDocument(RMDocument aDoc)
Sets the RMDocument associated with this viewer.void
setPrintingDPI(int printingDPI)
void
setPrintingMode(int printingMode)
void
setSelectedPageIndex(int anIndex)
Sets the page of viewer's document that is visible (by index).void
setShapePainter(RMShapePainter aPainter)
Sets the object that is actually responsible for paining shapes in the viewer.void
setShapeRepaintEnabled(boolean aFlag)
Sets whether changes to shapes cause repaints.void
setZoomFactor(float aFactor)
Sets the viewer's zoom factor (1 for 100%).void
setZoomForScreenResolution()
Sets the viewer's zoom to match the current screen resolutionvoid
undoerAddChildToShape(RMShape aShape, RMShape aParent)
Adds a child with undo registration in the viewer's documents's undoer (convenience).void
undoerDisable()
Disable's undo in the viewer's documents's undoer (convenience).void
undoerEnable()
Enable's undo in the viewer's documents's undoer (convenience).boolean
undoerHasUndos()
Returns whether undos exist in the viewer's documents's undoer (convenience).void
undoerSetCoalesce(boolean aFlag)
Turns on undo coalescing in the viewer's documents's undoer (convenience).void
undoerSetUndoTitle(java.lang.String aTitle)
Sets the title of the next registered undo in the viewer's documents's undoer (convenience).protected void
updateShapeUnderStack(RMShape aShape, java.awt.event.MouseEvent anEvent)
The shape under stack should always be a stack of descendants that acceptEvents.void
zoomToggleLast()
Sets the viewer's zoom to its previous value.-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUI, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
-
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
PRINT_MODE_VECTOR
public static final int PRINT_MODE_VECTOR
- See Also:
- Constant Field Values
-
PRINT_MODE_RASTER
public static final int PRINT_MODE_RASTER
- See Also:
- Constant Field Values
-
GridColor
public static java.awt.Color GridColor
-
MarginColor
public static java.awt.Color MarginColor
-
-
Constructor Detail
-
RMViewer
public RMViewer()
Creates a new RMViewer with an empty document in it.
-
RMViewer
public RMViewer(java.lang.Object aSource)
Creates a new RMViewer from the given source. aSource is used to get an RMDocument and can be many different things: String file path, File object, InputStream, byte array, URL or even an RMDocument.
-
-
Method Detail
-
getPrintingMode
public int getPrintingMode()
-
setPrintingMode
public void setPrintingMode(int printingMode)
-
getPrintingDPI
public int getPrintingDPI()
-
setPrintingDPI
public void setPrintingDPI(int printingDPI)
-
getDocument
public RMDocument getDocument()
Returns the RMDocument associated with this viewer.
-
setDocument
public void setDocument(RMDocument aDoc)
Sets the RMDocument associated with this viewer.
-
getSelectedPage
public RMShape getSelectedPage()
Returns the currently selected page shape.
-
getFilename
public java.lang.String getFilename()
Returns filename associated with viewer's document (or null if the document didn't come from a file).
-
getPageLayout
public byte getPageLayout()
Returns the page layout of the viewer's document.
-
getSelectedPageIndex
public int getSelectedPageIndex()
Returns the index of the current visiable document page.
-
setSelectedPageIndex
public void setSelectedPageIndex(int anIndex)
Sets the page of viewer's document that is visible (by index).
-
pageForward
public void pageForward()
Selects the next page.
-
pageBack
public void pageBack()
Selects the previous page.
-
getDocumentBounds
public RMRect getDocumentBounds()
Returns the bounds of the viewer document.
-
getPageBounds
public RMRect getPageBounds()
Returns the bounds of the viewer document's selected page.
-
getShapeAtPoint
public RMShape getShapeAtPoint(java.awt.geom.Point2D aPoint, boolean goDeep)
Returns the first shape hit by the given point.
-
getZoomFactor
public float getZoomFactor()
Returns the viewer's zoom factor (1 by default).
-
setZoomFactor
public void setZoomFactor(float aFactor)
Sets the viewer's zoom factor (1 for 100%).
-
setZoomForScreenResolution
public void setZoomForScreenResolution()
Sets the viewer's zoom to match the current screen resolution
-
zoomToggleLast
public void zoomToggleLast()
Sets the viewer's zoom to its previous value.
-
runZoomPanel
public void runZoomPanel()
Runs a dialog panel to request a percentage zoom (which is then set with setZoomFactor).
-
convertPointFromShape
public RMPoint convertPointFromShape(RMPoint aPoint, RMShape aShape)
Returns a point converted from the coordinate space of the given shape to viewer coords.
-
convertPointToShape
public RMPoint convertPointToShape(java.awt.geom.Point2D aPoint, RMShape aShape)
Returns a point converted from viewer coords to the coordinate space of the given shape.
-
convertRectFromShape
public RMRect convertRectFromShape(RMRect aRect, RMShape aShape)
Returns a rect converted from the coordinate space of the given shape to viewer coords.
-
convertRectToShape
public RMRect convertRectToShape(RMRect aRect, RMShape aShape)
Returns a rect converted from viewer coords to the coordinate space of the given shape.
-
getTransformFromShape
public java.awt.geom.AffineTransform getTransformFromShape(RMShape aShape)
Returns the transform from given shape to viewer.
-
repaint
public void repaint(RMRect aRect)
Requests a repaint for the area represented by the given rect.
-
getShapePainter
public RMShapePainter getShapePainter()
Returns the object that is actually responsible for paining shapes in the viewer.
-
setShapePainter
public void setShapePainter(RMShapePainter aPainter)
Sets the object that is actually responsible for paining shapes in the viewer.
-
getRenderingHints
public java.awt.RenderingHints getRenderingHints()
Returns the rendering hings used to paint the view.
-
drawsBackground
public boolean drawsBackground()
Returns whether or not the gutter, page background & dropshadow get drawn.
-
paintComponent
public void paintComponent(java.awt.Graphics g)
Overrides JComponent implementation to paint viewer shapes and page, margin, grid, etc.- Overrides:
paintComponent
in classjavax.swing.JComponent
-
paintComponentAbove
public void paintComponentAbove(java.awt.Graphics2D g)
Provides a hook for subclasses to paint above standard viewer drawing.
-
processMouseEvent
protected void processMouseEvent(java.awt.event.MouseEvent anEvent)
Handle mouse events.- Overrides:
processMouseEvent
in classjavax.swing.JComponent
-
processMouseMotionEvent
protected void processMouseMotionEvent(java.awt.event.MouseEvent anEvent)
- Overrides:
processMouseMotionEvent
in classjavax.swing.JComponent
-
mousePressed
public void mousePressed(java.awt.event.MouseEvent anEvent)
Handle mouse pressed event.
-
mouseDragged
public void mouseDragged(java.awt.event.MouseEvent anEvent)
Handle mouse dragged event.
-
mouseReleased
public void mouseReleased(java.awt.event.MouseEvent anEvent)
Handle mouse released event.
-
mouseMoved
public void mouseMoved(java.awt.event.MouseEvent anEvent)
Handle mouse moved event.
-
updateShapeUnderStack
protected void updateShapeUnderStack(RMShape aShape, java.awt.event.MouseEvent anEvent)
The shape under stack should always be a stack of descendants that acceptEvents.
-
performActionURLClick
public void performActionURLClick(java.lang.String aURL)
Viewer callback - called when shape with URL is clicked (opens URL).
-
getMinimumSize
public java.awt.Dimension getMinimumSize()
Standard minimum size method.- Overrides:
getMinimumSize
in classjavax.swing.JComponent
-
getPreferredSize
public java.awt.Dimension getPreferredSize()
Returns the optimal size of the viewer.- Overrides:
getPreferredSize
in classjavax.swing.JComponent
-
getUndoer
public RMUndoer getUndoer()
Returns the undoer associated with the viewer's document.
-
undoerSetUndoTitle
public void undoerSetUndoTitle(java.lang.String aTitle)
Sets the title of the next registered undo in the viewer's documents's undoer (convenience).
-
undoerDisable
public void undoerDisable()
Disable's undo in the viewer's documents's undoer (convenience).
-
undoerEnable
public void undoerEnable()
Enable's undo in the viewer's documents's undoer (convenience).
-
undoerSetCoalesce
public void undoerSetCoalesce(boolean aFlag)
Turns on undo coalescing in the viewer's documents's undoer (convenience).
-
undoerHasUndos
public boolean undoerHasUndos()
Returns whether undos exist in the viewer's documents's undoer (convenience).
-
undoerAddChildToShape
public void undoerAddChildToShape(RMShape aShape, RMShape aParent)
Adds a child with undo registration in the viewer's documents's undoer (convenience).
-
getShapeRepaintEnabled
public boolean getShapeRepaintEnabled()
Returns whether changes to shapes cause repaints.
-
setShapeRepaintEnabled
public void setShapeRepaintEnabled(boolean aFlag)
Sets whether changes to shapes cause repaints.
-
docShapeNeedsRepaint
public void docShapeNeedsRepaint(RMDocument aDoc, RMShape aShape)
Doc listener method - called before a shape makes a visual change. Provides a mechanism to efficiently repaint the portion of the viewer that currently displays a shape. Registers the area covered by the shape now and at event end, to efficiently repaint shapes in transition as well.- Specified by:
docShapeNeedsRepaint
in interfaceRMDocument.DocListener
-
docShapeBoundsChanged
public void docShapeBoundsChanged(RMDocument aDoc, RMShape aShape)
Doc listener method - called by editor when making bounds changes.- Specified by:
docShapeBoundsChanged
in interfaceRMDocument.DocListener
-
docUndoerAddDirtyObject
public void docUndoerAddDirtyObject(RMDocument aDoc, RMObject anObj)
Doc listener method - RMViewer ignores it, but RMEditor calls setUndoSelectedObjects.- Specified by:
docUndoerAddDirtyObject
in interfaceRMDocument.DocListener
-
flushGraphics
public void flushGraphics()
This method repaints the total bounds of shapes that have previously been registered by shapeNeedsRepaint. This should only be used internally.
-
getDirtyRect
public RMRect getDirtyRect()
Returns the dirty rect of shapes currently registered with shapeNeedsRepaint (and clears _dirtyShapes).
-
print
public void print()
This method tells the RMViewer to print by running the print dialog (configured to the default printer).
-
print
public void print(java.lang.String aPrinterName, boolean runPanel)
This method tells the RMViewer to print to the printer with the given printer name (use null for default printer). It also offers an option to run the printer dialog.
-
print2
public void print2()
-
print2
public void print2(java.lang.String aPrinterName, boolean runPanel)
-
getBook
public java.awt.print.Book getBook(int orientation, java.awt.print.Paper paper)
Returns a java.awt.print.Book, suitable for AWT printing.
-
-