Class RMTool<T extends RMShape>

Direct Known Subclasses:
AbstractIgnitionRMTool, BarcodeTool, RMCrossTabDividerTool, RMCrossTabFrameTool, RMCrossTabTool, RMDocumentTool, RMGraphPartBarsTool, RMGraphPartLabelAxisTool, RMGraphPartPieTool, RMGraphPartSeriesTool, RMGraphPartValueAxisTool, RMGraphTool, RMImageTool, RMLabelsTool, RMLabelTool, RMLineShapeTool, RMMorphShapeTool, RMNestedDocTool, RMOvalShapeTool, RMParentShapeTool, RMPolygonShapeTool, RMRectShapeTool, RMScene3DTool, RMSelectTool, RMSoundShapeTool, RMStarShapeTool, RMSubreportTool, RMTextShapeTool, ShapeGeneral

public class RMTool<T extends RMShape> extends SwingOwner
This is the base class for tools in RM - the objects that provide GUI editing for RM shapes.
  • Field Details

  • Constructor Details

    • RMTool

      public RMTool()
    • RMTool

      public RMTool(com.google.common.eventbus.EventBus ebus)
  • Method Details

    • getShapeClass

      public Class<T> getShapeClass()
      Returns the shape class that this tool handles.
    • attachEventBus

      public void attachEventBus(com.google.common.eventbus.EventBus bus)
    • newInstance

      protected T newInstance()
      Returns a new instance of the shape class that this tool is responsible for.
    • getWindowTitle

      public String getWindowTitle()
      Returns the string to be used for the inspector window title.
    • createUI

      protected JComponent createUI()
      Create UI.
      Overrides:
      createUI in class SwingOwner
    • getDatasetEntity

      @Nullable public Entity getDatasetEntity(RMShape aShape)
      Returns the given shape's dataset entity. Provides a level of indirection show shapes can show a different entity in the designer.
    • getEditor

      public RMEditor getEditor()
      Returns the currently active editor.
    • getEditorPane

      public RMEditorPane getEditorPane()
      Returns the currently active editor pane.
    • getSelectedShape

      public T getSelectedShape()
      Returns the current selected shape for the current editor.
    • getSelectedShapes

      public List<? extends RMShape> getSelectedShapes()
      Returns the current selected shapes for the current editor.
    • activateTool

      public void activateTool()
      Called when a tool is selected.
    • deactivateTool

      public void deactivateTool()
      Called when a tool is deselected (when another tool is selected).
    • reactivateTool

      public void reactivateTool()
      Called when a tool is selected even when it's already the current tool.
    • flushChanges

      public void flushChanges(RMEditor anEditor, RMShape aShape)
      Called when a tool is deselected to give an opportunity to finalize changes in progress.
    • isSelected

      public boolean isSelected(RMShape aShape)
      Returns whether a given shape is selected in the editor.
    • isSuperSelected

      public boolean isSuperSelected(RMShape aShape)
      Returns whether a given shape is superselected in the editor.
    • isSuperSelectable

      public boolean isSuperSelectable(RMShape aShape)
      Returns whether a given shape is super-selectable.
    • getAcceptsChildren

      public boolean getAcceptsChildren(RMShape aShape)
      Returns whether a given shape accepts children.
    • isUngroupable

      public boolean isUngroupable(RMShape aShape)
      Returns whether a given shape can be ungrouped.
    • didBecomeSuperSelectedShapeInEditor

      public void didBecomeSuperSelectedShapeInEditor(RMShape aShape, RMEditor anEditor)
      Editor method - called when an instance of this tool's shape is super selected.
    • willLoseSuperSelectionInEditor

      public void willLoseSuperSelectionInEditor(RMShape aShape, RMEditor anEditor)
      Editor method - called when an instance of this tool's shape in de-super-selected.
    • getBoundsSuperSelected

      public RMRect getBoundsSuperSelected(RMShape aShape)
      Returns the bounds of the shape in parent coords when super selected (same as getBoundsMarkedDeep by default).
    • getUnitsFromPoints

      public double getUnitsFromPoints(double aValue)
      Converts from shape units to tool units.
    • getPointsFromUnits

      public double getPointsFromUnits(double aValue)
      Converts from tool units to shape units.
    • getFont

      public RMFont getFont(RMEditor anEditor, RMShape shape)
      Returns the font for the given shape. If the shape is a table, table row, or CrossTab it returns the font of the first text in the first row or the first text in the row. If the first item has no string it searches through all the children in order to find text and returns that font.
    • setFont

      public void setFont(RMEditor anEditor, RMShape aShape, RMFont aFont)
      Sets the font for the given shape.
    • getFontDeep

      public RMFont getFontDeep(RMEditor anEditor, RMShape aShape)
      Returns the font for the given shape.
    • setFontFamily

      public void setFontFamily(RMEditor anEditor, RMShape aShape, RMFont aFont)
      Sets the font family for given shape.
    • setFontFamilyDeep

      public void setFontFamilyDeep(RMEditor anEditor, RMShape aShape, RMFont aFont)
      Sets the font family for given shape.
    • setFontName

      public void setFontName(RMEditor anEditor, RMShape aShape, RMFont aFont)
      Sets the font name for given shape.
    • setFontNameDeep

      public void setFontNameDeep(RMEditor anEditor, RMShape aShape, RMFont aFont)
      Sets the font name for given shape.
    • setFontSize

      public void setFontSize(RMEditor anEditor, RMShape aShape, double aSize, boolean isRelative)
      Sets the font size for given shape.
    • setFontSizeDeep

      public void setFontSizeDeep(RMEditor anEditor, RMShape aShape, double aSize, boolean isRelative)
      Sets the font size for given shape.
    • setFontBold

      public void setFontBold(RMEditor anEditor, RMShape aShape, boolean aFlag)
      Sets the font to bold or not bold for given shape.
    • setFontBoldDeep

      public void setFontBoldDeep(RMEditor anEditor, RMShape aShape, boolean aFlag)
      Sets the font to bold or not bold for given shape and its children.
    • setFontItalic

      public void setFontItalic(RMEditor anEditor, RMShape aShape, boolean aFlag)
      Sets the font to italic or not italic for given shape.
    • setFontItalicDeep

      public void setFontItalicDeep(RMEditor anEditor, RMShape aShape, boolean aFlag)
      Sets the font to italic or not italic for given shape and its children.
    • mouseMoved

      public void mouseMoved(MouseEvent anEvent)
      Event handling - called on mouse move when this tool is active.
    • mousePressed

      public void mousePressed(MouseEvent anEvent)
      Event handling for shape creation.
    • mouseDragged

      public void mouseDragged(MouseEvent anEvent)
      Event handling for shape creation.
    • mouseReleased

      public void mouseReleased(MouseEvent anEvent)
      Event handling for shape creation.
    • mouseMoved

      public void mouseMoved(T aShape, MouseEvent anEvent)
      Event handling from select tool - called on mouse move when tool shape is super selected. MouseMoved is useful for setting a custom cursor.
    • mousePressed

      public void mousePressed(T aShape, MouseEvent anEvent)
      Event handling from select tool for super selected shapes.
    • mouseDragged

      public void mouseDragged(T aShape, MouseEvent anEvent)
      Event handling from select tool for super selected shapes.
    • mouseReleased

      public void mouseReleased(T aShape, MouseEvent anEvent)
      Event handling from select tool for super selected shapes.
    • mousePressedSelection

      public boolean mousePressedSelection(MouseEvent anEvent)
      Event hook during selection.
    • getToolTipText

      public String getToolTipText(T aShape, MouseEvent anEvent)
      Returns a tool tip string for given shape and event.
    • processKeyEvent

      public void processKeyEvent(T aShape, KeyEvent anEvent)
      Editor method.
    • paintTool

      public void paintTool(Graphics2D g)
      Paints when tool is active for things like SelectTool's handles & selection rect or polygon's in-progress path.
    • paintShapeHandles

      public void paintShapeHandles(T aShape, Graphics2D g, boolean isSuperSelected)
      Handles painting shape handles (or any indication that a shape is selected/super-selected).
    • getHandleCount

      public int getHandleCount(T aShape)
      Returns the number of handles for this shape.
    • getHandlePoint

      public RMPoint getHandlePoint(T aShape, int aHandle, boolean isSuperSelected)
      Returns the point for the handle of the given shape at the given handle index in the given shape's coords.
    • getHandleRect

      public RMRect getHandleRect(T aShape, int aHandle, boolean isSuperSelected)
      Returns the rect for the handle at the given index in editor coords.
    • getHandleAtPoint

      public int getHandleAtPoint(T aShape, Point2D aPoint, boolean isSuperSelected)
      Returns the handle hit by the given editor coord point.
    • getHandleCursor

      public Cursor getHandleCursor(T aShape, int aHandle)
      Returns the cursor for given handle.
    • moveShapeHandle

      public void moveShapeHandle(T aShape, int aHandle, RMPoint toPoint)
      Moves the handle at the given index to the given point.
    • getHandleOpposing

      public int getHandleOpposing(int handle)
      Returns the handle index that is across from given handle index.
    • getShapeFillInspector

      public SwingOwner getShapeFillInspector()
      Returns the fill inspector for this tool's shape class.
    • getShapeHandleAtPoint

      public RMTool.RMShapeHandle getShapeHandleAtPoint(Point2D aPoint)
      Returns the shape handle for the given editor point.
    • acceptsDrag

      public boolean acceptsDrag(T aShape, DropTargetDragEvent anEvent)
      Implemented by shapes that can handle drag & drop.
    • dragEnter

      public void dragEnter(RMShape aShape, DropTargetDragEvent anEvent)
      Notifies tool that a something was dragged into of one of its shapes with drag and drop.
    • dragExit

      public void dragExit(RMShape aShape, DropTargetDragEvent anEvent)
      Notifies tool that a something was dragged out of one of its shapes with drag and drop.
    • dragOver

      public void dragOver(RMShape aShape, DropTargetDragEvent anEvent)
      Notifies tool that something was dragged over one of its shapes with drag and drop.
    • drop

      public void drop(T aShape, DropTargetDropEvent anEvent)
      Notifies tool that something was dropped on one of its shapes with drag and drop.
    • dropDragKey

      public void dropDragKey(T aShape, DropTargetDropEvent anEvent)
    • dropClass

      public void dropClass(T aShape, DropTargetDropEvent anEvent)
    • flavorForClass

      public static DataFlavor flavorForClass(Class clazz)
    • getDragDisplayBounds

      public RMRect getDragDisplayBounds(RMShape aShape, DropTargetDragEvent anEvent)
      Returns the bounds to be highlighted for a drag over a given shape.
    • dropString

      public void dropString(T aShape, DropTargetDropEvent anEvent)
      Called to handle dropping a string.
    • dropColor

      public void dropColor(RMShape aShape, DropTargetDropEvent anEvent)
      Called to handle dropping a color.
    • dropFiles

      public void dropFiles(RMShape aShape, DropTargetDropEvent anEvent)
      Called to handle dropping a file.
    • getGalleryClone

      public RMShape getGalleryClone(T aShape)
      Returns a clone of a gallery shape (hook to allow extra configuration for subclasses).
    • getIcon

      public Icon getIcon()
      Returns the icon used to represent shapes that this tool represents.
    • getIcon

      public static Icon getIcon(Class aClass)
      Returns the icon for the given shape class.
    • getSelectTool

      public static RMSelectTool getSelectTool()
      Returns the SelectTool.
    • getTool

      @Nonnull public static RMTool getTool(List aList)
      Returns the specific tool for a list of shapes (if they have the same tool).
    • getTool

      @Nonnull public static RMTool getTool(Object anObj)
      Returns the specific tool for a given shape.