Package com.inductiveautomation.rm.text
Class RMTextEditor
- java.lang.Object
-
- com.inductiveautomation.rm.base.RMListenerList
-
- com.inductiveautomation.rm.base.RMObject
-
- com.inductiveautomation.rm.text.RMTextEditor
-
- All Implemented Interfaces:
RMPropertyChanger
,RMTypes
,RMTextTypes
,java.beans.PropertyChangeListener
,java.lang.CharSequence
,java.lang.Cloneable
,java.util.EventListener
- Direct Known Subclasses:
RMEditorTextEditor
public class RMTextEditor extends RMObject implements RMTextTypes, java.lang.CharSequence, java.beans.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).
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
RMTextEditor.TextSelection
A class to act as text selection.-
Nested classes/interfaces inherited from interface com.inductiveautomation.rm.text.RMTextTypes
RMTextTypes.TabType
-
Nested classes/interfaces inherited from interface com.inductiveautomation.rm.base.RMTypes
RMTypes.Align, RMTypes.AlignX, RMTypes.AlignY
-
-
Field Summary
Fields Modifier and Type Field Description static boolean
isHyphenating
static boolean
isSpellChecking
-
Fields inherited from interface com.inductiveautomation.rm.text.RMTextTypes
TEXT_CHAR_SPACING, TEXT_COLOR, TEXT_EMBEDDED_SHAPE, TEXT_FONT, TEXT_FORMAT, TEXT_OUTLINE, TEXT_PARAGRAPH, TEXT_SCRIPTING, TEXT_UNDERLINE
-
-
Constructor Summary
Constructors Constructor Description RMTextEditor()
Creates a plain text editor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description char
charAt(int anIndex)
Returns the individual character at given index.void
copy()
Copies the current selection onto the clipboard.RMTextLayout
createLayout()
Creates a configured text layout used to layout text.void
cut()
Copies the current selection onto the clip board, then deletes the current selection.void
delete()
Deletes the current selection.void
delete(int aStart, int anEnd, boolean doUpdateSelection)
Deletes the given range of chars.void
deleteForward()
Deletes the character in front of the insertion point.void
deleteToLineEnd()
Deletes the characters from the insertion point to the end of the line.RMTypes.AlignX
getAlignmentX()
Returns the alignment for current selection.java.awt.geom.Rectangle2D
getBounds()
Returns the text editor bounds.int
getCharIndex(java.awt.geom.Point2D aPoint)
Returns the char index for given point in text coordinate space.float
getCharSpacing()
Returns the character spacing of the current selection or cursor.RMColor
getColor()
Returns the color of the current selection or cursor.RMFont
getFont()
Returns the font of the current selection or cursor.double
getFontScale()
Returns the scale applied to text when editing.RMFormat
getFormat()
Returns the format of the current selection or cursor.double
getHeight()
Returns the bounds height.float
getHeightToFit()
Returns the height needed to display all characters.RMParagraph
getInputParagraph()
Returns the paragraph of the current selection or cursor position.RMTextStyle
getInputStyle()
Returns the text style applied to any input characters.RMTextLayout
getLayout()
Returns the configured text layout used to layout text.RMTextLine
getLine(int anIndex)
Returns the individual line at given index.int
getLineCount()
Returns the number of lines.RMTextLine
getLineForChar(int anIndex)
Returns the line index for the given character index.float
getLineGap()
Returns the line gap for current selection.float
getLineHeightMax()
Returns the maximum line height for a line of text (even if font size would dictate higher).float
getLineHeightMin()
Returns the min line height for current selection.float
getLineSpacing()
Returns the line spacing for current selection.RMXString.Outline
getOutline()
Returns whether current selection is outlined.RMTextSel
getSel()
Returns the text editor selection.RMTextSel
getSel(double p1x, double p1y, double p2x, double p2y)
Returns the selected range that would result from the given two points.int
getSelAnchor()
Returns the character index of the last explicitly selected char (confined to the bounds of the selection).int
getSelEnd()
Returns the character index of the end of the text selection.java.awt.geom.GeneralPath
getSelPath()
Returns the path for the current selection.int
getSelStart()
Returns the character index of the start of the text selection.RMTextLine
getSelStartLine()
Returns the line at selection start.java.awt.geom.GeneralPath
getSpellingPath()
Returns a path for misspelled word underlining.java.lang.String
getString()
Returns the plain string of the xstring being edited.RMUndoer
getUndoer()
Returns the undoer.protected java.lang.Object
getUndoSelection()
Returns a selection object for undoer.double
getWidth()
Returns the bounds width.float
getWidthToFit()
Returns the width needed to display all characters.double
getX()
Returns the bounds x.RMXString
getXString()
Returns the xstring that is being edited.double
getY()
Returns the bounds y.boolean
isHyphenating()
Returns whether editor tries to hyphenate wrapped words.boolean
isSelEmpty()
Returns whether the selection is empty.boolean
isSpellChecking()
Returns whether editor is doing check-as-you-type spelling.boolean
isUnderlined()
Returns whether current selection is underlined.void
keyBackward(boolean isShiftDown)
Moves the insertion point backward a character (or if a range is selected, moves to beginning of range).void
keyDown(boolean shiftDown)
Moves the insertion point down a line, trying preserve distance from beginning of line.void
keyForward(boolean isShiftDown)
Moves the insertion point forward a character (or if a range is selected, moves to end of range).protected void
keyPressed(java.awt.event.KeyEvent anEvent)
Handle keyPressed.protected void
keyTyped(java.awt.event.KeyEvent anEvent)
Handle keyTyped.void
keyUp(boolean shiftDown)
Moves the insertion point up a line, trying to preserve distance from beginning of line.int
length()
Returns the number of characters in the text string.void
mouseDragged(java.awt.event.MouseEvent anEvent)
Handles mouse dragged.void
mousePressed(java.awt.event.MouseEvent anEvent)
Handles mouse pressed.void
mouseReleased(java.awt.event.MouseEvent anEvent)
Handles mouse released.void
paint(java.awt.Graphics2D g)
Paints a given layout in a given graphics.void
paste()
Pasts the current clipboard data over the current selection.void
processKeyEvent(java.awt.event.KeyEvent anEvent)
Handles key events.void
propertyChange(java.beans.PropertyChangeEvent anEvent)
Called when characters where added, updated or deleted.void
redo()
Called to redo the last undo operation in the editor.void
relayout()
Tells editor to rebuild layout.void
replace(RMXString anXString)
Replaces the current selection with the given xstring.void
replace(RMXString anXString, int aStart, int anEnd, boolean doUpdateSelection)
Replaces the current selection with the given xstring.void
replace(java.lang.String aString)
Replaces the current selection with the given string.void
replace(java.lang.String aString, int aStart, int anEnd, boolean doUpdateSelection)
Replaces the current selection with the given string.void
replace(java.lang.String aString, RMTextStyle aStyle, int aStart, int anEnd, boolean doUpdateSelection)
Replaces the current selection with the given string.void
replace(java.lang.String aString, java.util.Map theAttrs, int aStart, int anEnd, boolean doUpdateSelection)
Replaces the current selection with the given string.void
selectAll()
Selects all the characters in the text editor.void
selectLineEnd()
Moves the insertion point to next newline or text end.void
selectLineStart()
Moves the insertion point to the beginning of line.void
setAlignmentX(RMTypes.AlignX anAlignmentX)
Sets the alignment for current selection.void
setBounds(double anX, double aY, double aWidth, double aHeight)
Sets the text editor bounds.void
setBounds(java.awt.geom.Rectangle2D aRect)
Sets the text editor bounds.void
setCharSpacing(float aValue)
Returns the character spacing of the current selection or cursor.void
setColor(RMColor color)
Sets the color of the current selection or cursor.void
setFont(RMFont font)
Sets the font of the current selection or cursor.void
setFontScale(double aScale)
Sets the scale applied to text when editing.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.void
setInputAttribute(java.lang.String aKey, java.lang.Object aValue)
Sets the attributes that are applied to current selection or newly typed chars.void
setInputParagraph(RMParagraph ps)
Sets the paragraph of the current selection or cursor position.void
setLineGap(float aHeight)
Sets the line gap for current selection.void
setLineHeightMax(float aHeight)
Sets the maximum line height for a line of text (even if font size would dictate higher).void
setLineHeightMin(float aHeight)
Sets the min line height for current selection.void
setLineSpacing(float aHeight)
Sets the line spacing for current selection.void
setOutline(RMXString.Outline anOutline)
Sets whether current selection is outlined.void
setSel(int newStartEnd)
Sets the character index of the text cursor.void
setSel(int aStart, int anEnd)
Sets the character index of the start and end of the text selection.void
setSel(int aStart, int anEnd, int anAnchor)
Sets the character index of the start and end of the text selection.void
setSubscript()
Sets current selection to subscript.void
setSuperscript()
Sets current selection to superscript.void
setUnderlined(boolean aFlag)
Sets whether current selection is underlined.void
setXString(RMXString aString)
Sets the xstring that is to be edited.java.lang.CharSequence
subSequence(int aStart, int anEnd)
Returns a newCharSequence
that is a subsequence of this sequence.void
undo()
Called to undo the last edit operation in the editor.protected void
undoerAddPropertyChange(java.beans.PropertyChangeEvent anEvent)
Adds a property change to undoer.protected void
undoerSaveChanges()
Saves changes to undoer.-
Methods inherited from class com.inductiveautomation.rm.base.RMObject
addPropertyChangeListener, animUpdate, firePropertyChange, firePropertyChange, firePropertyChange, getPCEvent, removePropertyChangeListener, sendPropertyChange, toString
-
Methods inherited from class com.inductiveautomation.rm.base.RMListenerList
addListener, clone, getListener, getListenerCount, getListenerCount, getListenerList, getListeners, hasListeners, removeListener
-
-
-
-
Method Detail
-
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 java.awt.geom.Rectangle2D getBounds()
Returns the text editor bounds.
-
setBounds
public void setBounds(java.awt.geom.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 interfacejava.lang.CharSequence
-
charAt
public char charAt(int anIndex)
Returns the individual character at given index.- Specified by:
charAt
in interfacejava.lang.CharSequence
-
subSequence
public java.lang.CharSequence subSequence(int aStart, int anEnd)
Returns a newCharSequence
that is a subsequence of this sequence.- Specified by:
subSequence
in interfacejava.lang.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(java.awt.geom.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(java.lang.String aKey, java.lang.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 java.lang.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 java.lang.String aString)
Replaces the current selection with the given string.
-
replace
public void replace(java.lang.String aString, int aStart, int anEnd, boolean doUpdateSelection)
Replaces the current selection with the given string.
-
replace
public void replace(@Nonnull java.lang.String aString, java.util.Map theAttrs, int aStart, int anEnd, boolean doUpdateSelection)
Replaces the current selection with the given string.
-
replace
public void replace(@Nonnull java.lang.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(java.beans.PropertyChangeEvent anEvent)
Called when characters where added, updated or deleted.- Specified by:
propertyChange
in interfacejava.beans.PropertyChangeListener
-
undoerAddPropertyChange
protected void undoerAddPropertyChange(java.beans.PropertyChangeEvent anEvent)
Adds a property change to undoer.
-
undoerSaveChanges
protected void undoerSaveChanges()
Saves changes to undoer.
-
getUndoSelection
protected java.lang.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(java.awt.event.KeyEvent anEvent)
Handles key events.
-
keyPressed
protected void keyPressed(java.awt.event.KeyEvent anEvent)
Handle keyPressed.
-
keyTyped
protected void keyTyped(java.awt.event.KeyEvent anEvent)
Handle keyTyped.
-
mousePressed
public void mousePressed(java.awt.event.MouseEvent anEvent)
Handles mouse pressed.
-
mouseDragged
public void mouseDragged(java.awt.event.MouseEvent anEvent)
Handles mouse dragged.
-
mouseReleased
public void mouseReleased(java.awt.event.MouseEvent anEvent)
Handles mouse released.
-
paint
public void paint(java.awt.Graphics2D g)
Paints a given layout in a given graphics.
-
getSelPath
public java.awt.geom.GeneralPath getSelPath()
Returns the path for the current selection.
-
getSpellingPath
public java.awt.geom.GeneralPath getSpellingPath()
Returns a path for misspelled word underlining.
-
-