Class TextLine
- java.lang.Object
-
- com.inductiveautomation.rm.base.RMListenerList
-
- com.inductiveautomation.rm.base.RMObject
-
- com.inductiveautomation.snap.text.TextRect
-
- com.inductiveautomation.snap.text.TextLine
-
- All Implemented Interfaces:
RMPropertyChanger
,RMTypes
,TextTypes
,java.lang.CharSequence
,java.lang.Cloneable
public class TextLine extends TextRect implements java.lang.CharSequence, TextTypes
A class to represent text with attributes.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.inductiveautomation.rm.base.RMTypes
RMTypes.Align, RMTypes.AlignX, RMTypes.AlignY
-
Nested classes/interfaces inherited from interface com.inductiveautomation.snap.text.TextTypes
TextTypes.TabType
-
-
Field Summary
Fields Modifier and Type Field Description static char
TAB_CENTER
static char
TAB_DECIMAL
static char
TAB_LEFT
static char
TAB_RIGHT
-
Fields inherited from interface com.inductiveautomation.snap.text.TextTypes
TEXT_CHAR_SPACING, TEXT_COLOR, TEXT_FONT, TEXT_FORMAT, TEXT_LINK, TEXT_OUTLINE, TEXT_SCRIPTING, TEXT_UNDERLINE
-
-
Constructor Summary
Constructors Constructor Description TextLine()
Creates a new TextLine.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addChars(java.lang.CharSequence theChars, TextStyle theStyle, int anIndex)
Adds characters with attributes to this line at given index.void
addRun(TextRun aRun, int anIndex)
Adds a run to line.protected TextRun
addRun(TextStyle theStyle, int anIndex)
Adds a new run at given index.char
charAt(int anIndex)
Returns the char value at the specified index.TextLine
clone()
Standard clone implementation.protected TextRun
createRun()
Creates a new run.protected java.util.List
createTokens()
Returns the tokens for this line.RMTypes.AlignX
getAlignX()
Returns the alignment associated with this paragraph.double
getBaselineY()
Returns the y position for this line (in same coords as the layout frame).int
getCharIndex(double anX)
Returns the character index for the given x/y point.int
getEnd()
Returns the end char index of this line in text.int
getIndex()
Returns the index of this line in text.char
getLastChar()
Returns the last char.float
getLeftIndent()
Returns the left side indentation of this paragraph.float
getLeftIndentFirst()
Returns the left side indentation of the first line in this paragraph (this can be set different than successive lines).double
getLineAdvance()
Returns the vertical distance for any line below this line.float
getLineGap()
Returns additional line spacing expressed as a constant amount in points.float
getLineHeightMax()
Returns the maximum line height in printer points associated with this paragraph.float
getLineHeightMin()
Returns the minimum line height in printer points associated with this paragraph.float
getLineSpacing()
Returns the spacing of lines expressed as a factor of a given line's height.double
getMaxAscent()
Returns the max ascent of the chars in this line.TextLine
getNextLine()
Returns the next line, if available.float
getParagraphSpacing()
Returns the spacing between paragraphs in printer points associated with this paragraph.TextLine
getPreviousLine()
Returns the previous line if available.float
getRightIndent()
Returns the right side indentation of this paragraph.TextRun
getRun(int anIndex)
Returns the individual run at given index.TextRun
getRunAt(int anIndex)
Returns the head run for the line.int
getRunCount()
Returns the number of runs for this line.TextRun
getRunFor(int anIndex)
Returns the run for the given character index or last run if at end of line.TextRun
getRunLast()
Returns the last run.int
getStart()
Returns the start char index of this line in text.java.lang.String
getString()
Returns the string for the line.float
getTab(int anIndex)
Returns the specific tab value for the given index in printer points.int
getTabCount()
Returns the number of tabs associated with this paragraph.int
getTabIndex(float aLocation)
Returns the tab index for the given location.float[]
getTabs()
Returns the raw tab arrayjava.lang.String
getTabsString()
Returns the values of all the tabs associated with this paragraph as a comma separated string.char
getTabType(int anIndex)
Returns the type of tab at the given index.char[]
getTabTypes()
Returns the raw tab type arrayText
getText()
Returns the text.TextToken
getToken(int anIndex)
Returns the individual token at given index.TextToken
getTokenAt(int anIndex)
Returns the token at character index.int
getTokenCount()
Returns the number of tokens.TextToken
getTokenForPointX(double anX)
Returns the token at index.java.util.List<TextToken>
getTokens()
Returns the tokens for this line.double
getX()
Returns the line x.double
getXForChar(int anIndex)
Returns the x coord for the given character index.double
getY()
Returns the line y.void
invalidate()
Invalidates this line starting at given run.boolean
isLastCharNewline()
Returns whether run ends with newline.boolean
isLastCharWhiteSpace()
Returns whether line ends with space.protected void
join(TextLine aLine)
Joins the given line to the end of this line.int
length()
Returns the length of this text line.void
removeChars(int aStart, int anEnd)
Removes characters in given range.TextRun
removeRun(int anIndex)
Removes a run at given index.int
removeRun(TextRun aRun)
Removes the given run.void
setAlignX(RMTypes.AlignX anAlign)
Sets the alignment associated with this paragraph.void
setAttribute(java.lang.String aKey, java.lang.Object aValue, int aStart, int anEnd)
Sets a given attribute to a given value for a given range.void
setLineGap(float aGap)
Sets additional line spacing expressed as a constant amount in points.void
setLineHeightMax(float aValue)
Sets the maximum line height in printer points associated with this paragraph.void
setLineHeightMin(float aValue)
Sets the minimum line height in printer points associated with this paragraph.void
setLineSpacing(float aSpacing)
Sets the spacing of lines expressed as a factor of a given line's height.void
setParagraphSpacing(float aValue)
Returns the spacing between paragraphs in printer points associated with this paragraph.void
setTabsString(java.lang.String aString)
Sets the value of tabs from the given tabs string.protected TextLine
split(int anIndex)
Splits the line at given index in line.java.lang.CharSequence
subSequence(int aStart, int anEnd)
Returns a new char sequence that is a subsequence of this sequence.java.lang.String
toString()
Standard toString implementation.protected void
updateRuns(int aRunIndex)
Updates length due to change in given run.void
validate()
Validates this line.-
Methods inherited from class com.inductiveautomation.snap.text.TextRect
getHeight, getMaxX, getMaxY, getWidth, setHeight, setRect, setSize, setWidth, setX, setY
-
Methods inherited from class com.inductiveautomation.rm.base.RMObject
addPropertyChangeListener, animUpdate, firePropertyChange, firePropertyChange, firePropertyChange, getPCEvent, removePropertyChangeListener, sendPropertyChange
-
Methods inherited from class com.inductiveautomation.rm.base.RMListenerList
addListener, getListener, getListenerCount, getListenerCount, getListenerList, getListeners, hasListeners, removeListener
-
-
-
-
Field Detail
-
TAB_LEFT
public static final char TAB_LEFT
- See Also:
- Constant Field Values
-
TAB_RIGHT
public static final char TAB_RIGHT
- See Also:
- Constant Field Values
-
TAB_CENTER
public static final char TAB_CENTER
- See Also:
- Constant Field Values
-
TAB_DECIMAL
public static final char TAB_DECIMAL
- See Also:
- Constant Field Values
-
-
Method Detail
-
getText
public Text getText()
Returns the text.
-
getIndex
public int getIndex()
Returns the index of this line in text.
-
getStart
public int getStart()
Returns the start char index of this line in text.
-
getEnd
public int getEnd()
Returns the end char index of this line in text.
-
length
public int length()
Returns the length of this text line.- Specified by:
length
in interfacejava.lang.CharSequence
-
charAt
public char charAt(int anIndex)
Returns the char value at the specified index.- Specified by:
charAt
in interfacejava.lang.CharSequence
-
subSequence
public java.lang.CharSequence subSequence(int aStart, int anEnd)
Returns a new char sequence that is a subsequence of this sequence.- Specified by:
subSequence
in interfacejava.lang.CharSequence
-
getString
public java.lang.String getString()
Returns the string for the line.
-
addChars
public void addChars(java.lang.CharSequence theChars, TextStyle theStyle, int anIndex)
Adds characters with attributes to this line at given index.
-
removeChars
public void removeChars(int aStart, int anEnd)
Removes characters in given range.
-
setAttribute
public void setAttribute(java.lang.String aKey, java.lang.Object aValue, int aStart, int anEnd)
Sets a given attribute to a given value for a given range.
-
getRunCount
public int getRunCount()
Returns the number of runs for this line.
-
getRun
public TextRun getRun(int anIndex)
Returns the individual run at given index.
-
createRun
protected TextRun createRun()
Creates a new run.
-
addRun
public void addRun(TextRun aRun, int anIndex)
Adds a run to line.
-
removeRun
public TextRun removeRun(int anIndex)
Removes a run at given index.
-
removeRun
public int removeRun(TextRun aRun)
Removes the given run.
-
getRunLast
public TextRun getRunLast()
Returns the last run.
-
getRunAt
public TextRun getRunAt(int anIndex)
Returns the head run for the line.
-
getRunFor
public TextRun getRunFor(int anIndex)
Returns the run for the given character index or last run if at end of line.
-
updateRuns
protected void updateRuns(int aRunIndex)
Updates length due to change in given run.
-
invalidate
public void invalidate()
Invalidates this line starting at given run.
-
validate
public void validate()
Validates this line.
-
getAlignX
public RMTypes.AlignX getAlignX()
Returns the alignment associated with this paragraph.
-
setAlignX
public void setAlignX(RMTypes.AlignX anAlign)
Sets the alignment associated with this paragraph.
-
getLeftIndent
public float getLeftIndent()
Returns the left side indentation of this paragraph.
-
getLeftIndentFirst
public float getLeftIndentFirst()
Returns the left side indentation of the first line in this paragraph (this can be set different than successive lines).
-
getRightIndent
public float getRightIndent()
Returns the right side indentation of this paragraph.
-
getLineSpacing
public float getLineSpacing()
Returns the spacing of lines expressed as a factor of a given line's height.
-
setLineSpacing
public void setLineSpacing(float aSpacing)
Sets the spacing of lines expressed as a factor of a given line's height.
-
getLineGap
public float getLineGap()
Returns additional line spacing expressed as a constant amount in points.
-
setLineGap
public void setLineGap(float aGap)
Sets additional line spacing expressed as a constant amount in points.
-
getLineHeightMin
public float getLineHeightMin()
Returns the minimum line height in printer points associated with this paragraph.
-
setLineHeightMin
public void setLineHeightMin(float aValue)
Sets the minimum line height in printer points associated with this paragraph.
-
getLineHeightMax
public float getLineHeightMax()
Returns the maximum line height in printer points associated with this paragraph.
-
setLineHeightMax
public void setLineHeightMax(float aValue)
Sets the maximum line height in printer points associated with this paragraph.
-
getParagraphSpacing
public float getParagraphSpacing()
Returns the spacing between paragraphs in printer points associated with this paragraph.
-
setParagraphSpacing
public void setParagraphSpacing(float aValue)
Returns the spacing between paragraphs in printer points associated with this paragraph.
-
getTabCount
public int getTabCount()
Returns the number of tabs associated with this paragraph.
-
getTab
public float getTab(int anIndex)
Returns the specific tab value for the given index in printer points.
-
getTabType
public char getTabType(int anIndex)
Returns the type of tab at the given index.
-
getTabs
public float[] getTabs()
Returns the raw tab array
-
getTabTypes
public char[] getTabTypes()
Returns the raw tab type array
-
getTabIndex
public int getTabIndex(float aLocation)
Returns the tab index for the given location.
-
getTabsString
public java.lang.String getTabsString()
Returns the values of all the tabs associated with this paragraph as a comma separated string.
-
setTabsString
public void setTabsString(java.lang.String aString)
Sets the value of tabs from the given tabs string.
-
getTokenCount
public int getTokenCount()
Returns the number of tokens.
-
getToken
public TextToken getToken(int anIndex)
Returns the individual token at given index.
-
getTokens
public java.util.List<TextToken> getTokens()
Returns the tokens for this line.
-
createTokens
protected java.util.List createTokens()
Returns the tokens for this line.
-
getBaselineY
public double getBaselineY()
Returns the y position for this line (in same coords as the layout frame).
-
getMaxAscent
public double getMaxAscent()
Returns the max ascent of the chars in this line.
-
getLineAdvance
public double getLineAdvance()
Returns the vertical distance for any line below this line.
-
getLastChar
public char getLastChar()
Returns the last char.
-
isLastCharWhiteSpace
public boolean isLastCharWhiteSpace()
Returns whether line ends with space.
-
isLastCharNewline
public boolean isLastCharNewline()
Returns whether run ends with newline.
-
getTokenAt
public TextToken getTokenAt(int anIndex)
Returns the token at character index.
-
getTokenForPointX
public TextToken getTokenForPointX(double anX)
Returns the token at index.
-
getCharIndex
public int getCharIndex(double anX)
Returns the character index for the given x/y point.
-
getXForChar
public double getXForChar(int anIndex)
Returns the x coord for the given character index.
-
getPreviousLine
public TextLine getPreviousLine()
Returns the previous line if available.
-
getNextLine
public TextLine getNextLine()
Returns the next line, if available.
-
split
protected TextLine split(int anIndex)
Splits the line at given index in line.
-
join
protected void join(TextLine aLine)
Joins the given line to the end of this line.
-
clone
public TextLine clone()
Standard clone implementation.- Overrides:
clone
in classRMListenerList
-
-