Package com.reportmill.editor
Class RMEditor
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- com.reportmill.RMViewer
-
- com.reportmill.editor.RMEditor
-
- All Implemented Interfaces:
RMDocument.DocListener,java.awt.image.ImageObserver,java.awt.MenuContainer,java.io.Serializable
- Direct Known Subclasses:
RBEditor,RMRptEditor
public class RMEditor extends RMViewer
This class subclasses RMViewer to support RMDocument editing.- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class com.reportmill.RMViewer
GridColor, MarginColor, PRINT_MODE_RASTER, 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 Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddPage()Adds a page to the document after current page.voidaddPage(RMPage page, int index)Adds a given page to the current document at the given index.voidaddPagePrevious()Adds a page to the document before current page.voidaddShapesToShape(java.util.List shapes, RMShape aShape, boolean withCorrection)Adds shapes as children to given shape.voidaddShapeToSelectedShapes(RMShape aShape)Add a shape to the selected shapes list.voidcopy()Standard clipboard copy functionality.voidcut()Standard clipboard cut functionality.voiddelete()Deletes all the currently selected shapes.voiddocUndoerAddDirtyObject(RMDocument aDoc, RMObject anObj)Doc listener method - RMViewer ignores it, but RMEditor calls setUndoSelectedObjects.RMShapefirstSuperSelectedShapeThatAcceptsChildren()Returns the first SuperSelectedShape that accepts children.RMShapefirstSuperSelectedShapeThatAcceptsChildrenAtPoint(RMPoint aPoint)Returns the first SuperSelected shape that accepts children at a given point.RMShapefirstSuperSelectedShapeThatAcceptsChildrenOrChildrenSuperSelectImmediately()Returns the first super selected shape that accepts children or whose children super select immediately.voidflushEditingChanges()This method finalizes any (potentially cached) changes in progress in the editor (like from text editing).java.util.MapgetArchiverClassMap()Returns the Map of tags and classes to be used for unarchiving document shapes.RMShapegetChildShapeAtPoint(RMShape aShape, RMPoint aPoint)Returns the child of the given shape hit by the given point.ToolgetCurrentTool()Tool method - returns the currently selected tool.RMDataSourcegetDataSource()Returns the datasource associated with the editor's document.java.lang.ObjectgetDataSourceDataset()Returns the sample dataset from the document's datasource.voidgetDragAndDrop()Called to enabled drag and drop.RMEditorShapePaintergetEditorShapePainter()Returns the shape painter (which is actually an editor shape painter).RMEditorEventsgetEvents()Returns the even helper object.java.lang.StringgetFileDescription()Returns the description for the editor document for use in open/save panels.java.lang.StringgetFileExtension()Returns extension for editor document.java.awt.DimensiongetPreferredSize()Overrides viewer method to ensure editor is always at least 575x300.RMShapegetSelectedOrSuperSelectedShape()Returns the currently selected shape or, if none, the super-selected shape.RMShapegetSelectedOrSuperSelectedShape(int anIndex)Returns the currently selected shape at the given index, or the super-selected shape.intgetSelectedOrSuperSelectedShapeCount()Returns the number of currently selected shapes or simply 1, if a shape is super-selected.RMShapegetSelectedShape()Returns the first selected shape.RMShapegetSelectedShape(int anIndex)Returns the selected shape at the given index.intgetSelectedShapeCount()Returns the number of selected shapes.java.util.ListgetSelectedShapes()Returns the selected shapes list.java.util.ListgetSelectedShapesOrSuperSelectedShape()Returns the currentlys elected shapes or, if none, the super-selected shape in a list.RMShapegetShapeAtPoint(java.awt.geom.Point2D aPoint)Returns first shape hit by point given in View coords.RMShapegetSuperSelectedShape()Returns the first super-selected shape.RMShapegetSuperSelectedShape(int anIndex)Returns the super-selected shape at the given index.intgetSuperSelectedShapeCount()Returns the number of super-selected shapes.java.util.ListgetSuperSelectedShapes()Returns the super selected shape list.RMEditorTextEditorgetTextEditor()Returns the text editor (or null if not editing).RMEditorTextEditorgetTextEditor(boolean evenIfNotActive)Returns the text editor (even if not editing).RMEditorTextEditorgetTextEditor(RMText aText)Returns the text editor, primed for editing the given text shape.booleangetValueIsAdjusting()Returns whether the editor is in a state of constant change, like during a mouse drag loop.java.awt.WindowgetWindow()Returns the window ancestor that the editor component resides in.booleanisCurrentToolSelectTool()Returns whether the select tool is currently selected.booleanisCurrentToolSelectToolAndSelecting()Tool method - Returns whether the select tool is currently selected and if it's currently being used to select.booleanisManagingFocus()This gives us tab events, but seems to be deprecated.booleanisPreview()Returns whether editor is preview (or viewer) mode.static RMEditormainEditor()Returns the editor that was most recently used.voidmouseDragged(java.awt.event.MouseEvent anEvent)Handle mouse dragged event.voidmouseMoved(java.awt.event.MouseEvent anEvent)Handle mouse moved event.voidmousePressed(java.awt.event.MouseEvent anEvent)Handle mouse pressed event.voidmouseReleased(java.awt.event.MouseEvent anEvent)Handle mouse released event.voidpaintComponentAbove(java.awt.Graphics2D g2)RMEditor drawing.voidpaintViewportAbove(java.awt.Graphics2D g2, javax.swing.JViewport aViewport)Paints editor stuff in viewport, so that it's independent of scroll.voidpaste()Standard clipbard paste functionality.voidpopSelection()Un-SuperSelect currently super selected shape.protected voidprocessKeyEvent(java.awt.event.KeyEvent e)Handle key events.protected voidprocessKeyEventSuper(java.awt.event.KeyEvent e)Handle key event super - so RMEditorEvents can get at default behavior.voidredo()Called to redo the last undo operation in the editor.voidremovePage()Removes current page from document.voidremovePage(int index)Removes the document page at the given index.voidremoveShapeFromSelectedShapes(RMShape aShape)Remove a shape from the selected shapes list.voidresetCurrentTool()Resets the currently selected tool.voidselectAll()Causes all the children of the current super selected shape to become selected.voidselectShape(RMShape aShape)Selects the given shape.voidselectShapes(java.util.List shapes)Selects the shapes in the given list.voidsetCurrentTool(int anIndex)Tool method - sets the currently selected tool to the specific Tool's core tool at the given index.voidsetCurrentTool(Tool aTool)Tool method - sets the currently select tool to the given tool.voidsetCurrentToolToSelectTool()Sets the current tool to the select tool.voidsetDataSource(java.lang.Object aSource)Sets the datasource associated with the editor's document.voidsetDocument(RMDocument aDoc)Overrides viewer method to add an undoer to document.voidsetPreview(boolean doPreview)Sets whether editor should be in preview (or viewer) mode.voidsetSelectedPageIndex(int index)Override viewer method to reset selected shapes on page change.voidsetZoomFactor(float aFactor)Overrides viewer method to focus zoomed region on selected shapes.voidsuperSelect()SuperSelect currently selected shape.voidsuperSelectShape(RMShape aShape)Super select a shape.voidundo()Called to undo the last edit operation in the editor.-
Methods inherited from class com.reportmill.RMViewer
convertPointFromShape, convertPointToShape, convertRectFromShape, convertRectToShape, docShapeBoundsChanged, docShapeNeedsRepaint, drawsBackground, flushGraphics, getBook, getDirtyRect, getDocument, getDocumentBounds, getFilename, getMinimumSize, getPageBounds, getPageLayout, getPrintingDPI, getPrintingMode, getRenderingHints, getSelectedPage, getSelectedPageIndex, getShapeAtPoint, getShapePainter, getShapeRepaintEnabled, getTransformFromShape, getUndoer, getZoomFactor, pageBack, pageForward, paintComponent, performActionURLClick, print, print, print2, print2, processMouseEvent, processMouseMotionEvent, repaint, runZoomPanel, setPrintingDPI, setPrintingMode, setShapePainter, setShapeRepaintEnabled, setZoomForScreenResolution, undoerAddChildToShape, undoerDisable, undoerEnable, undoerHasUndos, undoerSetCoalesce, undoerSetUndoTitle, updateShapeUnderStack, zoomToggleLast
-
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, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, 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
-
-
-
-
Method Detail
-
mainEditor
public static RMEditor mainEditor()
Returns the editor that was most recently used.
-
setDocument
public void setDocument(RMDocument aDoc)
Overrides viewer method to add an undoer to document.- Overrides:
setDocumentin classRMViewer
-
isPreview
public boolean isPreview()
Returns whether editor is preview (or viewer) mode.
-
setPreview
public void setPreview(boolean doPreview)
Sets whether editor should be in preview (or viewer) mode.
-
getValueIsAdjusting
public boolean getValueIsAdjusting()
Returns whether the editor is in a state of constant change, like during a mouse drag loop.
-
getFileExtension
public java.lang.String getFileExtension()
Returns extension for editor document.
-
getFileDescription
public java.lang.String getFileDescription()
Returns the description for the editor document for use in open/save panels.
-
getWindow
public java.awt.Window getWindow()
Returns the window ancestor that the editor component resides in.
-
getDragAndDrop
public void getDragAndDrop()
Called to enabled drag and drop.
-
getTextEditor
public RMEditorTextEditor getTextEditor()
Returns the text editor (or null if not editing).
-
getTextEditor
public RMEditorTextEditor getTextEditor(boolean evenIfNotActive)
Returns the text editor (even if not editing).
-
getTextEditor
public RMEditorTextEditor getTextEditor(RMText aText)
Returns the text editor, primed for editing the given text shape.
-
getSelectedShapeCount
public int getSelectedShapeCount()
Returns the number of selected shapes.
-
getSelectedShape
public RMShape getSelectedShape(int anIndex)
Returns the selected shape at the given index.
-
getSelectedShape
public RMShape getSelectedShape()
Returns the first selected shape.
-
getSelectedShapes
public java.util.List getSelectedShapes()
Returns the selected shapes list.
-
getSuperSelectedShapeCount
public int getSuperSelectedShapeCount()
Returns the number of super-selected shapes.
-
getSuperSelectedShape
public RMShape getSuperSelectedShape(int anIndex)
Returns the super-selected shape at the given index.
-
getSuperSelectedShape
public RMShape getSuperSelectedShape()
Returns the first super-selected shape.
-
getSuperSelectedShapes
public java.util.List getSuperSelectedShapes()
Returns the super selected shape list.
-
getSelectedOrSuperSelectedShape
public RMShape getSelectedOrSuperSelectedShape()
Returns the currently selected shape or, if none, the super-selected shape.
-
getSelectedShapesOrSuperSelectedShape
public java.util.List getSelectedShapesOrSuperSelectedShape()
Returns the currentlys elected shapes or, if none, the super-selected shape in a list.
-
getSelectedOrSuperSelectedShapeCount
public int getSelectedOrSuperSelectedShapeCount()
Returns the number of currently selected shapes or simply 1, if a shape is super-selected.
-
getSelectedOrSuperSelectedShape
public RMShape getSelectedOrSuperSelectedShape(int anIndex)
Returns the currently selected shape at the given index, or the super-selected shape.
-
selectShape
public void selectShape(RMShape aShape)
Selects the given shape.
-
selectShapes
public void selectShapes(java.util.List shapes)
Selects the shapes in the given list.
-
addShapeToSelectedShapes
public void addShapeToSelectedShapes(RMShape aShape)
Add a shape to the selected shapes list.
-
removeShapeFromSelectedShapes
public void removeShapeFromSelectedShapes(RMShape aShape)
Remove a shape from the selected shapes list.
-
superSelectShape
public void superSelectShape(RMShape aShape)
Super select a shape.
-
superSelect
public void superSelect()
SuperSelect currently selected shape.
-
flushEditingChanges
public void flushEditingChanges()
This method finalizes any (potentially cached) changes in progress in the editor (like from text editing).
-
popSelection
public void popSelection()
Un-SuperSelect currently super selected shape.
-
getShapeAtPoint
public RMShape getShapeAtPoint(java.awt.geom.Point2D aPoint)
Returns first shape hit by point given in View coords.
-
getChildShapeAtPoint
public RMShape getChildShapeAtPoint(RMShape aShape, RMPoint aPoint)
Returns the child of the given shape hit by the given point.
-
firstSuperSelectedShapeThatAcceptsChildren
public RMShape firstSuperSelectedShapeThatAcceptsChildren()
Returns the first SuperSelectedShape that accepts children.
-
firstSuperSelectedShapeThatAcceptsChildrenAtPoint
public RMShape firstSuperSelectedShapeThatAcceptsChildrenAtPoint(RMPoint aPoint)
Returns the first SuperSelected shape that accepts children at a given point.
-
firstSuperSelectedShapeThatAcceptsChildrenOrChildrenSuperSelectImmediately
public RMShape firstSuperSelectedShapeThatAcceptsChildrenOrChildrenSuperSelectImmediately()
Returns the first super selected shape that accepts children or whose children super select immediately.
-
cut
public void cut()
Standard clipboard cut functionality.
-
copy
public void copy()
Standard clipboard copy functionality.
-
paste
public void paste()
Standard clipbard paste functionality.
-
selectAll
public void selectAll()
Causes all the children of the current super selected shape to become selected.
-
delete
public void delete()
Deletes all the currently selected shapes.
-
addShapesToShape
public void addShapesToShape(java.util.List shapes, RMShape aShape, boolean withCorrection)Adds shapes as children to given shape.
-
addPage
public void addPage()
Adds a page to the document after current page.
-
addPagePrevious
public void addPagePrevious()
Adds a page to the document before current page.
-
addPage
public void addPage(RMPage page, int index)
Adds a given page to the current document at the given index.
-
removePage
public void removePage()
Removes current page from document.
-
removePage
public void removePage(int index)
Removes the document page at the given index.
-
getCurrentTool
public Tool getCurrentTool()
Tool method - returns the currently selected tool.
-
setCurrentTool
public void setCurrentTool(Tool aTool)
Tool method - sets the currently select tool to the given tool.
-
setCurrentTool
public void setCurrentTool(int anIndex)
Tool method - sets the currently selected tool to the specific Tool's core tool at the given index.
-
isCurrentToolSelectTool
public boolean isCurrentToolSelectTool()
Returns whether the select tool is currently selected.
-
setCurrentToolToSelectTool
public void setCurrentToolToSelectTool()
Sets the current tool to the select tool.
-
isCurrentToolSelectToolAndSelecting
public boolean isCurrentToolSelectToolAndSelecting()
Tool method - Returns whether the select tool is currently selected and if it's currently being used to select.
-
resetCurrentTool
public void resetCurrentTool()
Resets the currently selected tool.
-
setSelectedPageIndex
public void setSelectedPageIndex(int index)
Override viewer method to reset selected shapes on page change.- Overrides:
setSelectedPageIndexin classRMViewer
-
setZoomFactor
public void setZoomFactor(float aFactor)
Overrides viewer method to focus zoomed region on selected shapes.- Overrides:
setZoomFactorin classRMViewer
-
getEditorShapePainter
public RMEditorShapePainter getEditorShapePainter()
Returns the shape painter (which is actually an editor shape painter).
-
paintComponentAbove
public void paintComponentAbove(java.awt.Graphics2D g2)
RMEditor drawing.- Overrides:
paintComponentAbovein classRMViewer
-
paintViewportAbove
public void paintViewportAbove(java.awt.Graphics2D g2, javax.swing.JViewport aViewport)Paints editor stuff in viewport, so that it's independent of scroll.
-
getEvents
public RMEditorEvents getEvents()
Returns the even helper object.
-
mouseMoved
public void mouseMoved(java.awt.event.MouseEvent anEvent)
Handle mouse moved event.- Overrides:
mouseMovedin classRMViewer
-
mousePressed
public void mousePressed(java.awt.event.MouseEvent anEvent)
Handle mouse pressed event.- Overrides:
mousePressedin classRMViewer
-
mouseDragged
public void mouseDragged(java.awt.event.MouseEvent anEvent)
Handle mouse dragged event.- Overrides:
mouseDraggedin classRMViewer
-
mouseReleased
public void mouseReleased(java.awt.event.MouseEvent anEvent)
Handle mouse released event.- Overrides:
mouseReleasedin classRMViewer
-
processKeyEvent
protected void processKeyEvent(java.awt.event.KeyEvent e)
Handle key events.- Overrides:
processKeyEventin classjavax.swing.JComponent
-
processKeyEventSuper
protected void processKeyEventSuper(java.awt.event.KeyEvent e)
Handle key event super - so RMEditorEvents can get at default behavior.
-
isManagingFocus
public boolean isManagingFocus()
This gives us tab events, but seems to be deprecated.- Overrides:
isManagingFocusin classjavax.swing.JComponent
-
getPreferredSize
public java.awt.Dimension getPreferredSize()
Overrides viewer method to ensure editor is always at least 575x300.- Overrides:
getPreferredSizein classRMViewer
-
getDataSource
public RMDataSource getDataSource()
Returns the datasource associated with the editor's document.
-
setDataSource
public void setDataSource(java.lang.Object aSource)
Sets the datasource associated with the editor's document.
-
getDataSourceDataset
public java.lang.Object getDataSourceDataset()
Returns the sample dataset from the document's datasource.
-
undo
public void undo()
Called to undo the last edit operation in the editor.
-
redo
public void redo()
Called to redo the last undo operation in the editor.
-
docUndoerAddDirtyObject
public void docUndoerAddDirtyObject(RMDocument aDoc, RMObject anObj)
Doc listener method - RMViewer ignores it, but RMEditor calls setUndoSelectedObjects.- Specified by:
docUndoerAddDirtyObjectin interfaceRMDocument.DocListener- Overrides:
docUndoerAddDirtyObjectin classRMViewer
-
getArchiverClassMap
public java.util.Map getArchiverClassMap()
Returns the Map of tags and classes to be used for unarchiving document shapes.
-
-