Class RMEditor
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
com.inductiveautomation.rm.viewer.RMViewer
com.inductiveautomation.rm.editor.RMEditor
- All Implemented Interfaces:
DeepChangeListener
,ImageObserver
,MenuContainer
,PropertyChangeListener
,Serializable
,EventListener
,Scrollable
This class subclasses RMViewer to support RMDocument editing.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class com.inductiveautomation.rm.viewer.RMViewer
RMViewer.PhantomPane, RMViewer.RMVPrintable, RMViewer.ZoomMode
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
static final String
static final String
static final String
static final String
Fields inherited from class com.inductiveautomation.rm.viewer.RMViewer
Content_Prop, PRINT_MODE_RASTER, PRINT_MODE_VECTOR, ZOOM_CHANGE
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
Fields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addPage()
Adds a page to the document after current page.void
Adds a given page to the current document at the given index.void
Adds a page to the document before current page.void
addSelectedShape
(RMShape aShape) Add a shape to the selected shapes list and ensures the super selected is added as well on the first run.void
addShapesToShape
(List<? extends RMShape> theShapes, RMParentShape aShape, boolean withCorrection) Adds shapes as children to given shape.void
copy()
Standard clipboard copy functionality.Called to enabled drag and drop.Creates an editor input adapter for viewer adapter.protected RMShapePainterJ2D
Creates the object that is actually responsible for paining shapes in the viewer.Creates the shapes helper.protected RMViewerShape
Creates the viewer shape.void
cut()
Standard clipboard cut functionality.void
deepChange
(PropertyChangeListener aShape, PropertyChangeEvent anEvent) Property change.void
delete()
Deletes all the currently selected shapes.Returns the first SuperSelectedShape that accepts children.Returns the first SuperSelected shape that accepts children at a given point.Returns the first SuperSelectedShape that accepts children, or the currently selected page if N/Avoid
This method finalizes any (potentially cached) changes in progress in the editor (like from text editing).getChildShapeAtPoint
(RMShape aShape, RMPoint aPoint) Returns the child of the given shape hit by the given point.Tool method - returns the currently selected tool.Returns the datasource associated with the editor's document.Returns the sample dataset from the document's datasource.Returns the even helper object.Returns the editor pane for this editor, if there is one.static RMEditor
Returns the editor that was most recently activated.protected Dimension
Returns the ideal size of the viewer.getRepaintBoundsForShape
(RMShape aShape) Overrides RMViewer implementation to account for selected shapes potentially having different bounds.Returns the currently selected shape or, if none, the super-selected shape.getSelectedOrSuperSelectedShape
(int anIndex) Returns the currently selected shape at the given index, or the super-selected shape.int
Returns the number of currently selected shapes or simply 1, if a shape is super-selected.Returns the currently selected shapes or, if none, the super-selected shape in a list.Returns the first selected shape.getSelectedShape
(int anIndex) Returns the selected shape at the given index.int
Returns the number of selected shapes.Returns the selected shapes list.Scrolls selected shapes to visible.getShapeAtPoint
(Point2D aPoint) Returns first shape hit by point given in View coords.Returns the shapes helper.Returns the first super selected shape, if parent shape.Returns the first super-selected shape.getSuperSelectedShape
(int anIndex) Returns the super-selected shape at the given index.int
Returns the number of super-selected shapes.Returns the super selected shape list.Returns the text editor (or null if not editing).getTextEditor
(boolean evenIfNotActive) Returns the text editor (even if not editing).getTextEditor
(RMTextShape aText) Returns the text editor, primed for editing the given text shape.getToolTipText
(MouseEvent anEvent) Returns a tool tip string by asking deepest shape's tool.boolean
Returns whether the editor is in a state of constant change, like during a mouse drag loop.Override to return as editor shape.Override to have zoom focus on selected shapes rect.boolean
Returns whether the select tool is currently selected.boolean
Tool method - Returns whether the select tool is currently selected and if it's currently being used to select.boolean
Returns whether viewer is really doing editing.boolean
isSelected
(RMShape aShape) Returns whether a given shape is selected in the editor.boolean
isSuperSelected
(RMShape aShape) Returns whether a given shape is super-selected in the editor.void
Overrides JComponent implementation to paint viewer shapes and page, margin, grid, etc.void
paste()
Standard clipbard paste functionality.void
Un-SuperSelect currently super selected shape.protected void
Override to revalidate when ideal size changes.void
redo()
Called to redo the last undo operation in the editor.void
Removes current page from document.void
removePage
(int anIndex) Removes the document page at the given index.void
removeSelectedShape
(RMShape aShape) Remove a shape from the selected shapes list.void
Resets the currently selected tool.protected void
Saves Undo Changes.protected void
Saves undo changes after a delay.void
Causes all the children of the current super selected shape to become selected.void
setCurrentTool
(RMTool aTool) Tool method - sets the currently select tool to the given tool.void
Sets the current tool to the select tool.void
setDataSource
(RMDataSource aDataSource) Sets the datasource associated with the editor's document.void
setEditing
(boolean aFlag) Sets whether viewer is really doing editing.void
setSelectedPageIndex
(int anIndex) Override viewer method to reset selected shapes on page change.void
setSelectedShape
(RMShape aShape) Selects the given shape.void
setSelectedShapes
(List<RMShape> theShapes) Selects the shapes in the given list.void
setSuperSelectedShape
(RMShape aShape) Super select a shape.protected void
setTextSelection
(int aStart, int anEnd) Called to notify the TextEditor has changed selection.protected void
setUndoSelection
(Object aSelection) Sets the undo selection.void
undo()
Called to undo the last edit operation in the editor.Methods inherited from class com.inductiveautomation.rm.viewer.RMViewer
convertPointFromShape, convertPointToShape, convertRectFromShape, convertRectToShape, docShapeRepaint, firstPage, flushShapeRepaints, getBook, getContent, getContentX, getContentY, getCopies, getDocument, getDocumentBounds, getDrawsBackground, getHoverShape, getInputAdapter, getlastZoomFactor, getPageBounds, getPageCount, getPageOrientation, getPaintFrameRate, getPhantomPane, getPreferredScrollableViewportSize, getPreferredSize, getPrefSize, getPrintingDPI, getPrintingMode, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedPage, getSelectedPageIndex, getShape, getShapeAtPoint, getShapePainter, getShapeRepaintEnabled, getShown, getSourceURL, getTransformFromShape, getUndoer, getZoomFactor, getZoomFactor, getZoomMode, getZoomToActualSizeFactor, isCollate, isPreview, isPrintBothSides, isUseAutoLandscape, isZoomToFactor, lastPage, mouseDragged, mouseMoved, mousePressed, mouseReleased, pageBack, pageForward, paintBackground, performActionURLClick, play, print, print, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, propertyChange, repaint, runZoomPanel, setBounds, setCollate, setContent, setContent, setCopies, setInputAdapter, setPageOrientation, setPaintFrameRate, setPrintBothSides, setPrintingDPI, setPrintingMode, setShapeRepaintEnabled, setShown, setUseAutoLandscape, setZoomFactor, setZoomFactorImpl, setZoomMode, setZoomToFitFactor, stop, undoerHasUndos, undoerSetUndoTitle, viewerHidden, viewerShown, 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, getMinimumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, 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, 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, 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, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Field Details
-
CurrentTool_Prop
- See Also:
-
SelectedShapes_Prop
- See Also:
-
SuperSelectedShape_Prop
- See Also:
-
TextSelection_Prop
- See Also:
-
PageSelection_Prop
- See Also:
-
-
Constructor Details
-
RMEditor
public RMEditor()Creates a new editor.
-
-
Method Details
-
getMainEditor
Returns the editor that was most recently activated. -
getEditorPane
Returns the editor pane for this editor, if there is one. -
getViewerShape
Override to return as editor shape.- Overrides:
getViewerShape
in classRMViewer
-
createViewerShape
Creates the viewer shape.- Overrides:
createViewerShape
in classRMViewer
-
isEditing
public boolean isEditing()Returns whether viewer is really doing editing. -
setEditing
public void setEditing(boolean aFlag) Sets whether viewer is really doing editing. -
getValueIsAdjusting
public boolean getValueIsAdjusting()Returns whether the editor is in a state of constant change, like during a mouse drag loop. -
createShapePainter
Creates the object that is actually responsible for paining shapes in the viewer.- Overrides:
createShapePainter
in classRMViewer
-
createDropTarget
Called to enabled drag and drop. -
getTextEditor
Returns the text editor (or null if not editing). -
getTextEditor
Returns the text editor (even if not editing). -
getTextEditor
Returns the text editor, primed for editing the given text shape. -
setTextSelection
protected void setTextSelection(int aStart, int anEnd) Called to notify the TextEditor has changed selection. -
getShapesHelper
Returns the shapes helper. -
createShapesHelper
Creates the shapes helper. -
getSelectedShape
Returns the first selected shape. -
setSelectedShape
Selects the given shape. -
getSelectedShapeCount
public int getSelectedShapeCount()Returns the number of selected shapes. -
getSelectedShape
Returns the selected shape at the given index. -
getSelectedShapes
Returns the selected shapes list. -
setSelectedShapes
Selects the shapes in the given list. -
addSelectedShape
Add a shape to the selected shapes list and ensures the super selected is added as well on the first run. -
removeSelectedShape
Remove a shape from the selected shapes list. -
getSuperSelectedShape
Returns the first super-selected shape. -
getSuperSelectedParentShape
Returns the first super selected shape, if parent shape. -
setSuperSelectedShape
Super select a shape. -
isSelected
Returns whether a given shape is selected in the editor. -
isSuperSelected
Returns whether a given shape is super-selected in the editor. -
getSuperSelectedShapeCount
public int getSuperSelectedShapeCount()Returns the number of super-selected shapes. -
getSuperSelectedShape
Returns the super-selected shape at the given index. -
getSuperSelectedShapes
Returns the super selected shape list. -
getSelectedOrSuperSelectedShapeCount
public int getSelectedOrSuperSelectedShapeCount()Returns the number of currently selected shapes or simply 1, if a shape is super-selected. -
getSelectedOrSuperSelectedShape
Returns the currently selected shape at the given index, or the super-selected shape. -
getSelectedOrSuperSelectedShape
Returns the currently selected shape or, if none, the super-selected shape. -
getSelectedOrSuperSelectedShapes
Returns the currently selected shapes or, if none, the super-selected shape in a list. -
popSelection
public void popSelection()Un-SuperSelect currently super selected shape. -
getRepaintBoundsForShape
Overrides RMViewer implementation to account for selected shapes potentially having different bounds.- Overrides:
getRepaintBoundsForShape
in classRMViewer
-
flushEditingChanges
public void flushEditingChanges()This method finalizes any (potentially cached) changes in progress in the editor (like from text editing). -
getShapeAtPoint
Returns first shape hit by point given in View coords. -
getChildShapeAtPoint
Returns the child of the given shape hit by the given point. -
firstSuperSelectedShapeThatAcceptsChildren
Returns the first SuperSelectedShape that accepts children. -
firstSuperSelectedShapeThatAcceptsChildrenSafe
Returns the first SuperSelectedShape that accepts children, or the currently selected page if N/A -
firstSuperSelectedShapeThatAcceptsChildrenAtPoint
Returns the first SuperSelected shape that accepts children at a given point. -
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(List<? extends RMShape> theShapes, RMParentShape 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
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 anIndex) Removes the document page at the given index. -
getCurrentTool
Tool method - returns the currently selected tool. -
setCurrentTool
Tool method - sets the currently select tool to the given tool. -
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 anIndex) Override viewer method to reset selected shapes on page change.- Overrides:
setSelectedPageIndex
in classRMViewer
-
getSelectedShapesBounds
Scrolls selected shapes to visible. -
getZoomFocusRect
Override to have zoom focus on selected shapes rect.- Overrides:
getZoomFocusRect
in classRMViewer
-
paintComponent
Overrides JComponent implementation to paint viewer shapes and page, margin, grid, etc.- Overrides:
paintComponent
in classRMViewer
-
createInputAdapter
Creates an editor input adapter for viewer adapter.- Overrides:
createInputAdapter
in classRMViewer
-
getEditorInputAdapter
Returns the even helper object. -
processEvent
Override to revalidate when ideal size changes.- Overrides:
processEvent
in classContainer
-
getPrefSize
Returns the ideal size of the viewer.- Overrides:
getPrefSize
in classRMViewer
-
getToolTipText
Returns a tool tip string by asking deepest shape's tool.- Overrides:
getToolTipText
in classJComponent
-
getDataSource
Returns the datasource associated with the editor's document. -
setDataSource
Sets the datasource associated with the editor's document. -
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. -
setUndoSelection
Sets the undo selection. -
deepChange
Property change.- Specified by:
deepChange
in interfaceDeepChangeListener
-
saveUndoerChanges
protected void saveUndoerChanges()Saves Undo Changes. -
saveUndoerChangesLater
protected void saveUndoerChangesLater()Saves undo changes after a delay.
-