Class RMTextEditor

All Implemented Interfaces:
RMPropertyChanger, RMTypes, RMTextTypes, PropertyChangeListener, CharSequence, Cloneable, EventListener
Direct Known Subclasses:
RMEditorTextEditor

public class RMTextEditor extends RMObject implements RMTextTypes, CharSequence, PropertyChangeListener
This class provides all of the event and drawing code necessary to edit text in the form of an RMXString (separated from an actual UI Component).
  • Field Details

    • isSpellChecking

      public static boolean isSpellChecking
    • isHyphenating

      public static boolean isHyphenating
  • Constructor Details

    • RMTextEditor

      public RMTextEditor()
      Creates a plain text editor.
  • Method Details

    • getXString

      public RMXString getXString()
      Returns the xstring that is being edited.
    • setXString

      public void setXString(RMXString aString)
      Sets the xstring that is to be edited.
    • getBounds

      public Rectangle2D getBounds()
      Returns the text editor bounds.
    • setBounds

      public void setBounds(Rectangle2D aRect)
      Sets the text editor bounds.
    • setBounds

      public void setBounds(double anX, double aY, double aWidth, double aHeight)
      Sets the text editor bounds.
    • getX

      public double getX()
      Returns the bounds x.
    • getY

      public double getY()
      Returns the bounds y.
    • getWidth

      public double getWidth()
      Returns the bounds width.
    • getHeight

      public double getHeight()
      Returns the bounds height.
    • length

      public int length()
      Returns the number of characters in the text string.
      Specified by:
      length in interface CharSequence
    • charAt

      public char charAt(int anIndex)
      Returns the individual character at given index.
      Specified by:
      charAt in interface CharSequence
    • subSequence

      public CharSequence subSequence(int aStart, int anEnd)
      Returns a new CharSequence that is a subsequence of this sequence.
      Specified by:
      subSequence in interface CharSequence
    • isSpellChecking

      public boolean isSpellChecking()
      Returns whether editor is doing check-as-you-type spelling.
    • isHyphenating

      public boolean isHyphenating()
      Returns whether editor tries to hyphenate wrapped words.
    • isSelEmpty

      public boolean isSelEmpty()
      Returns whether the selection is empty.
    • getSel

      public RMTextSel getSel()
      Returns the text editor selection.
    • setSel

      public void setSel(int newStartEnd)
      Sets the character index of the text cursor.
    • setSel

      public void setSel(int aStart, int anEnd)
      Sets the character index of the start and end of the text selection.
    • setSel

      public void setSel(int aStart, int anEnd, int anAnchor)
      Sets the character index of the start and end of the text selection.
    • getSelStart

      public int getSelStart()
      Returns the character index of the start of the text selection.
    • getSelEnd

      public int getSelEnd()
      Returns the character index of the end of the text selection.
    • getSelAnchor

      public int getSelAnchor()
      Returns the character index of the last explicitly selected char (confined to the bounds of the selection).
    • selectAll

      public void selectAll()
      Selects all the characters in the text editor.
    • getSel

      public RMTextSel getSel(double p1x, double p1y, double p2x, double p2y)
      Returns the selected range that would result from the given two points.
    • getLineCount

      public int getLineCount()
      Returns the number of lines.
    • getLine

      public RMTextLine getLine(int anIndex)
      Returns the individual line at given index.
    • getLineForChar

      public RMTextLine getLineForChar(int anIndex)
      Returns the line index for the given character index.
    • getSelStartLine

      public RMTextLine getSelStartLine()
      Returns the line at selection start.
    • getFontScale

      public double getFontScale()
      Returns the scale applied to text when editing.
    • setFontScale

      public void setFontScale(double aScale)
      Sets the scale applied to text when editing.
    • getLayout

      public RMTextLayout getLayout()
      Returns the configured text layout used to layout text.
    • createLayout

      public RMTextLayout createLayout()
      Creates a configured text layout used to layout text.
    • relayout

      public void relayout()
      Tells editor to rebuild layout.
    • getCharIndex

      public int getCharIndex(Point2D aPoint)
      Returns the char index for given point in text coordinate space.
    • getInputStyle

      public RMTextStyle getInputStyle()
      Returns the text style applied to any input characters.
    • setInputAttribute

      public void setInputAttribute(String aKey, Object aValue)
      Sets the attributes that are applied to current selection or newly typed chars.
    • getInputParagraph

      public RMParagraph getInputParagraph()
      Returns the paragraph of the current selection or cursor position.
    • setInputParagraph

      public void setInputParagraph(RMParagraph ps)
      Sets the paragraph of the current selection or cursor position.
    • getString

      public String getString()
      Returns the plain string of the xstring being edited.
    • getColor

      public RMColor getColor()
      Returns the color of the current selection or cursor.
    • setColor

      public void setColor(RMColor color)
      Sets the color of the current selection or cursor.
    • getFont

      public RMFont getFont()
      Returns the font of the current selection or cursor.
    • setFont

      public void setFont(RMFont font)
      Sets the font of the current selection or cursor.
    • getFormat

      public RMFormat getFormat()
      Returns the format of the current selection or cursor.
    • setFormat

      public void setFormat(RMFormat aFormat)
      Sets the format of the current selection or cursor, after trying to expand the selection to encompass currently selected, @-sign delineated key.
    • isUnderlined

      public boolean isUnderlined()
      Returns whether current selection is underlined.
    • setUnderlined

      public void setUnderlined(boolean aFlag)
      Sets whether current selection is underlined.
    • getOutline

      public RMXString.Outline getOutline()
      Returns whether current selection is outlined.
    • setOutline

      public void setOutline(RMXString.Outline anOutline)
      Sets whether current selection is outlined.
    • setSuperscript

      public void setSuperscript()
      Sets current selection to superscript.
    • setSubscript

      public void setSubscript()
      Sets current selection to subscript.
    • getAlignmentX

      public RMTypes.AlignX getAlignmentX()
      Returns the alignment for current selection.
    • setAlignmentX

      public void setAlignmentX(RMTypes.AlignX anAlignmentX)
      Sets the alignment for current selection.
    • getCharSpacing

      public float getCharSpacing()
      Returns the character spacing of the current selection or cursor.
    • setCharSpacing

      public void setCharSpacing(float aValue)
      Returns the character spacing of the current selection or cursor.
    • getLineSpacing

      public float getLineSpacing()
      Returns the line spacing for current selection.
    • setLineSpacing

      public void setLineSpacing(float aHeight)
      Sets the line spacing for current selection.
    • getLineGap

      public float getLineGap()
      Returns the line gap for current selection.
    • setLineGap

      public void setLineGap(float aHeight)
      Sets the line gap for current selection.
    • getLineHeightMin

      public float getLineHeightMin()
      Returns the min line height for current selection.
    • setLineHeightMin

      public void setLineHeightMin(float aHeight)
      Sets the min line height for current selection.
    • getLineHeightMax

      public float getLineHeightMax()
      Returns the maximum line height for a line of text (even if font size would dictate higher).
    • setLineHeightMax

      public void setLineHeightMax(float aHeight)
      Sets the maximum line height for a line of text (even if font size would dictate higher).
    • delete

      public void delete()
      Deletes the current selection.
    • delete

      public void delete(int aStart, int anEnd, boolean doUpdateSelection)
      Deletes the given range of chars.
    • replace

      public void replace(@Nonnull String aString)
      Replaces the current selection with the given string.
    • replace

      public void replace(String aString, int aStart, int anEnd, boolean doUpdateSelection)
      Replaces the current selection with the given string.
    • replace

      public void replace(@Nonnull String aString, Map theAttrs, int aStart, int anEnd, boolean doUpdateSelection)
      Replaces the current selection with the given string.
    • replace

      public void replace(@Nonnull String aString, RMTextStyle aStyle, int aStart, int anEnd, boolean doUpdateSelection)
      Replaces the current selection with the given string.
    • replace

      public void replace(RMXString anXString)
      Replaces the current selection with the given xstring.
    • replace

      public void replace(RMXString anXString, int aStart, int anEnd, boolean doUpdateSelection)
      Replaces the current selection with the given xstring.
    • cut

      public void cut()
      Copies the current selection onto the clip board, then deletes the current selection.
    • copy

      public void copy()
      Copies the current selection onto the clipboard.
    • paste

      public void paste()
      Pasts the current clipboard data over the current selection.
    • getUndoer

      public RMUndoer getUndoer()
      Returns the undoer.
    • 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.
    • propertyChange

      public void propertyChange(PropertyChangeEvent anEvent)
      Called when characters where added, updated or deleted.
      Specified by:
      propertyChange in interface PropertyChangeListener
    • undoerAddPropertyChange

      protected void undoerAddPropertyChange(PropertyChangeEvent anEvent)
      Adds a property change to undoer.
    • undoerSaveChanges

      protected void undoerSaveChanges()
      Saves changes to undoer.
    • getUndoSelection

      protected Object getUndoSelection()
      Returns a selection object for undoer.
    • keyForward

      public void keyForward(boolean isShiftDown)
      Moves the insertion point forward a character (or if a range is selected, moves to end of range).
    • keyBackward

      public void keyBackward(boolean isShiftDown)
      Moves the insertion point backward a character (or if a range is selected, moves to beginning of range).
    • keyUp

      public void keyUp(boolean shiftDown)
      Moves the insertion point up a line, trying to preserve distance from beginning of line.
    • keyDown

      public void keyDown(boolean shiftDown)
      Moves the insertion point down a line, trying preserve distance from beginning of line.
    • selectLineStart

      public void selectLineStart()
      Moves the insertion point to the beginning of line.
    • selectLineEnd

      public void selectLineEnd()
      Moves the insertion point to next newline or text end.
    • deleteForward

      public void deleteForward()
      Deletes the character in front of the insertion point.
    • deleteToLineEnd

      public void deleteToLineEnd()
      Deletes the characters from the insertion point to the end of the line.
    • getWidthToFit

      public float getWidthToFit()
      Returns the width needed to display all characters.
    • getHeightToFit

      public float getHeightToFit()
      Returns the height needed to display all characters.
    • processKeyEvent

      public void processKeyEvent(KeyEvent anEvent)
      Handles key events.
    • keyPressed

      protected void keyPressed(KeyEvent anEvent)
      Handle keyPressed.
    • keyTyped

      protected void keyTyped(KeyEvent anEvent)
      Handle keyTyped.
    • mousePressed

      public void mousePressed(MouseEvent anEvent)
      Handles mouse pressed.
    • mouseDragged

      public void mouseDragged(MouseEvent anEvent)
      Handles mouse dragged.
    • mouseReleased

      public void mouseReleased(MouseEvent anEvent)
      Handles mouse released.
    • paint

      public void paint(Graphics2D g)
      Paints a given layout in a given graphics.
    • getSelPath

      public GeneralPath getSelPath()
      Returns the path for the current selection.
    • getSpellingPath

      public GeneralPath getSpellingPath()
      Returns a path for misspelled word underlining.