Class TextComponent

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
com.inductiveautomation.snap.swing.TextComponent
All Implemented Interfaces:
RMTypes, TextTypes, ImageObserver, MenuContainer, PropertyChangeListener, Serializable, CharSequence, EventListener
Direct Known Subclasses:
TextArea

public class TextComponent extends JComponent implements PropertyChangeListener, TextTypes, CharSequence
A base class for using Snap Text in Swing.
See Also:
  • Constructor Details

    • TextComponent

      public TextComponent()
      Creates a new TextComponent.
  • Method Details

    • setSource

      public void setSource(Object aSource)
      Set the source for TextComponent text.
    • getText

      public Text getText()
      Returns the text that is being edited.
    • setText

      public void setText(Text aText)
      Sets the text that is to be edited.
    • createText

      protected Text createText()
      Creates a new Text.
    • 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
    • getString

      public String getString()
      Returns the plain string of the text being edited.
    • setString

      public void setString(String aString)
      Set text string of text editor.
    • getLineCount

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

      public TextLine getLine(int anIndex)
      Returns the individual line at given index.
    • getLineLast

      public TextLine getLineLast()
      Returns the last line.
    • getLineAt

      public TextLine getLineAt(int anIndex)
      Returns the line for the given character index.
    • getLineFor

      public TextLine getLineFor(int anIndex)
      Returns the line for the given character index or last line if at end.
    • getTokenAt

      public TextToken getTokenAt(int anIndex)
      Returns the token for given character index.
    • getCharIndex

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

      public int getCharIndex(double anX, double aY)
      Returns the char index for given point in text coordinate space.
    • getMargin

      public Insets getMargin()
      Returns the text margins.
    • setMargin

      public void setMargin(Insets theInsets)
      Sets the text margins.
    • isSelEmpty

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

      public int getSelSize()
      Returns the number of chars in the 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).
    • getSel

      public TextSel getSel()
      Returns the 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.
    • selectAll

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

      public void selectForward(boolean isShiftDown)
      Moves the selection index forward a character (or if a range is selected, moves to end of range).
    • selectBackward

      public void selectBackward(boolean isShiftDown)
      Moves the selection index backward a character (or if a range is selected, moves to beginning of range).
    • selectUp

      public void selectUp()
      Moves the selection index up a line, trying to preserve distance from beginning of line.
    • selectDown

      public void selectDown()
      Moves the selection index 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.
    • replace

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

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

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

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

      public void deleteBackward()
      Deletes the character before of the insertion point.
    • deleteForward

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

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

      public TextStyle getInputStyle()
      Returns the TextStyle 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.
    • getInputLine

      public TextLine getInputLine()
      Returns the line for the current selection start index.
    • getColor

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

      public void setColor(SnapColor aColor)
      Sets the color of the current selection or cursor.
    • getTextFont

      public SnapFont getTextFont()
      Returns the font of the current selection or cursor.
    • setTextFont

      public void setTextFont(SnapFont aFont)
      Sets the font of the current selection or cursor.
    • setFont

      public void setFont(Font aFont)
      Set AWT Font for current selection.
      Overrides:
      setFont in class JComponent
    • isUnderlined

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

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

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

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

      public RMTypes.AlignX getAlignX()
      Returns the alignment for current selection.
    • setAlignX

      public void setAlignX(RMTypes.AlignX anAlignX)
      Sets the alignment for current selection.
    • getCharSpacing

      public double 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).
    • setBounds

      public void setBounds(int x, int y, int w, int h)
      Overrides JComponent method to update TextEditor.Text bounds.
      Overrides:
      setBounds in class Component
    • getPreferredSize

      public Dimension getPreferredSize()
      Overrides JComponent method to declare preferred size to be text's preferred size.
      Overrides:
      getPreferredSize in class JComponent
    • calcPrefWidth

      protected double calcPrefWidth()
      Returns the width needed to display all characters.
    • calcPrefHeight

      protected double calcPrefHeight()
      Returns the height needed to display all characters.
    • setTextRect

      protected void setTextRect()
      Sets the Text.Rect from text area.
    • getSelColor

      public Color getSelColor()
      Returns the selection color.
    • paintComponent

      public void paintComponent(Graphics g)
      Overrides JComponent to paint text editor text.
      Overrides:
      paintComponent in class JComponent
    • paintBackground

      protected void paintBackground(Graphics2D aGraphics)
      Paints background.
    • paintTextSelection

      protected void paintTextSelection(Graphics2D aGraphics)
      Paints text selection.
    • paintText

      protected void paintText(Graphics2D aGraphics)
      Paints text area lines.
    • paintLine

      protected void paintLine(Graphics2D aGraphics, TextLine aLine, double anX, double aY)
      Paints a TextLine.
    • paintToken

      protected void paintToken(Graphics2D aGraphics, TextToken aToken, double anX, double aY)
      Paints a TextToken.
    • setRenderingHints

      protected void setRenderingHints(Graphics2D aGraphics)
      Sets rendering hints for text render.
    • getSelPath

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

      public GeneralPath getPathForChars(int aStart, int anEnd)
      Returns a path for two char indexes - it will be a a simple box with extensions for first/last lines.
    • processMouseEvent

      protected void processMouseEvent(MouseEvent anEvent)
      Overrides JComponent method to forward mouse pressed/released to text editor.
      Overrides:
      processMouseEvent in class JComponent
    • processMouseMotionEvent

      protected void processMouseMotionEvent(MouseEvent anEvent)
      Overrides JComponent method to forward mouse drags to text editor.
      Overrides:
      processMouseMotionEvent in class JComponent
    • mousePressed

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

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

      protected void mouseReleased(MouseEvent anEvent)
      Handles mouse released.
    • processComponentKeyEvent

      protected void processComponentKeyEvent(KeyEvent anEvent)
      Overrides JComponent to forward to keyPressed(), keyReleased(), keyTyped().
      Overrides:
      processComponentKeyEvent in class JComponent
    • keyTyped

      protected void keyTyped(KeyEvent anEvent)
      Called when a key is typed.
    • keyPressed

      protected void keyPressed(KeyEvent anEvent)
      Called when a key is pressed.
    • keyReleased

      protected void keyReleased(KeyEvent anEvent)
      Called when a key is released.
    • processFocusEvent

      protected void processFocusEvent(FocusEvent e)
      Override to show hidden cursor.
      Overrides:
      processFocusEvent in class Component
    • showCursor

      public void showCursor()
      Shows the cursor.
    • hideCursor

      public void hideCursor()
      Hides the cursor.
    • 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 boolean undo()
      Called to undo the last edit operation in the editor.
    • redo

      public boolean redo()
      Called to redo the last undo operation in the editor.
    • undoerAddPropertyChange

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

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

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

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