Package com.inductiveautomation.rm.text
Class RMXString
java.lang.Object
com.inductiveautomation.rm.base.RMListenerList
com.inductiveautomation.rm.base.RMObject
com.inductiveautomation.rm.text.RMXString
- All Implemented Interfaces:
Archivable
,RMPropertyChanger
,RMTypes
,RMTextTypes
,CharSequence
,Cloneable
An RMXString is like a String that lets you apply attributes, like fonts and colors, to character ranges. These
character ranges with common attributes are represented internally as the inner class Run.
You might use it like this:
RMXString xstring = new RMXString("Hello World", RMColor.red); xstring.addAttribute(RMFont.getFont("Arail Bold", 12), 0, 5); xstring.addAttribute(RMFont.getFont("Arial BoldItalic", 12), 6, xstring.length());
Advanced applications, that need to dissect or render strings, might iterate over the runs like this:
for(int i=0; i<xstring.getRunCount(); i++) {
RMXString.Run run = xstring.getRun(i);
graphics.setFont(run.getFont().awt());
graphics.setColor(run.getColor().awt());
graphics.drawString(xstring.substring(run.start(), run.end()));
}
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclass
A property change event for addChars/removeChars.static class
The Outline inner class represents the attributes of outlined text: strokeWidth and fillColor.class
A property change event for RMXStringRun.Style change.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 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
ConstructorsConstructorDescriptionCreates an empty RMXString.RMXString
(CharSequence theChars) Creates an RMXString initialized with the given String and no attributes.RMXString
(CharSequence theChars, RMTextStyle aStyle) Creates an RMXString initialized with the given String with all characters set to the given style.RMXString
(CharSequence theChars, Object... theAttrs) Creates an RMXString initialized with the given String with all characters set to the given attributes. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addChars
(CharSequence theChars) Appends the given String to the end of this XString.void
addChars
(CharSequence theChars, int anIndex) Adds chars at index.void
addChars
(CharSequence theChars, RMTextStyle aStyle, int anIndex) Appends the given string to this XString, with the given attributes, at the given index.void
addChars
(CharSequence theChars, Object... theAttrs) Appends the given chars with the given attribute(s).void
addChars
(CharSequence theChars, Map theAttrs) Appends the given string to the end of this XString, with the given attributes.void
addChars
(CharSequence theChars, Map theAttrs, int anIndex) Appends the given string to this XString, with the given attributes, at the given index.void
Adds an XString to this string at given index.char
charAt
(int anIndex) Returns the char at given index.clone()
Returns a clone of this x string.boolean
Standard Object equals implementation.protected void
firePropertyChange
(PropertyChangeEvent anEvent, String aName, Object oldVal, Object newVal, int anIndex) Override so RMXStringRun can reach this and to reset representable string and version.fromXML
(RXArchiver anArchiver, RXElement anElement) XML unarchival.Returns the horizontal alignment of the first paragraph of the xstring.getDefaultAttribute
(String aKey) Returns the default for a given key.Returns the default color for this string.Returns the default font for this string.Returns the default format for this string.Returns the default paragraph for this string.getFontAt
(int anIndex) Returns the current font at the given character index.getParagraphAt
(int anIndex) Returns the current paragraph at the given character index.Returns a version of this string that substitutes alternate fonts for any characters that cannot be displayed in their associated fonts (simply returns the receiver if all characters are valid).getRun()
Returns the XString head run.getRun
(int anIndex) Returns the specific Run at the given index in this XString.final RMXStringRun
getRunAt
(int anIndex) Returns the XString run that contains or ends at given index.getRunAt
(int anIndex, boolean isInclusive) Returns the XString run that contains or ends (if given option is true) at given index.int
Returns the number of runs in this XString.Returns the last run in this XString (convenience).getStyleAt
(int anIndex) Returns the text style for the run at the given character index.getStyleAt
(int anIndex, boolean isInclusive) Returns the text style for the run at the given character index.getText()
Returns the simple String represented by this RMXString.boolean
Override to return false if FirePropertyChangeEnabled is off.int
Returns the index within this string of the first occurrence of the given substring.int
Returns the index within this string of first occurrence of given substring, starting at given index.int
length()
The length.void
removeChars
(int aStart, int anEnd) Removes characters in given range.void
replaceChars
(CharSequence theChars, int aStart, int anEnd) Replaces chars in given range, with given String.void
replaceChars
(CharSequence theChars, RMTextStyle aStyle, int aStart, int anEnd) Replaces chars in given range, with given String, using the given attributes.void
replaceString
(RMXString xString, int aStart, int anEnd) Replaces the chars in given range, with given XString.rpgClone
(ReportOwner anRptOwner, Object userInfo, RMShape aShape, boolean doCopy) Creates a clone of the receiver, with substitution performed on @-sign delineated keys.void
setAlignX
(RMTypes.AlignX anAlignX) Sets the horizontal alignment of the xstring.void
setAttribute
(Object anAttr) Applies the given attribute to whole xstring, assuming it's a basic attr types (font, color, etc.).void
setAttribute
(Object anAttr, int aStart, int anEnd) Applies the given attribute to the given character range, assuming it's a basic attr type (font, color, etc.).void
setAttribute
(String aKey, Object anAttr) Adds a given attribute of given type to the whole string.void
setAttribute
(String aKey, Object aValue, int aStart, int anEnd) Sets a given attribute to a given value for a given range.void
setDateFormat
(RMDateFormat dateFormat) void
setDateFormat
(String dateFormatString) void
setFirePropertyChangeEnabled
(boolean aValue) Sets whether string fires property change events.void
void
setNumberFormat
(RMNumberFormat numberFormat) void
setNumberFormat
(String numberFormatString) void
setParagraph
(RMParagraph ps, int start, int end) Sets the paragraph for the given character index range.void
setStyle
(RMTextStyle aStyle, int aStart, int anEnd) Sets the text style for given range.void
Sets the simple String represented by this RMXString.void
setUnderlined
(boolean aFlag) Sets the xstring to be underlined.subSequence
(int aStart, int anEnd) Returns a subsequence.substring
(int aStart) Returns an XString for given char range.substring
(int aStart, int anEnd) Returns an XString for given char range.toString()
Standard toString implementation.toXML
(RXArchiver anArchiver) XML archival.Methods inherited from class com.inductiveautomation.rm.base.RMObject
addPropertyChangeListener, animUpdate, firePropertyChange, firePropertyChange, getPCEvent, removePropertyChangeListener, sendPropertyChange
Methods inherited from class com.inductiveautomation.rm.base.RMListenerList
addListener, getListener, getListenerCount, getListenerCount, getListenerList, getListeners, removeListener
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.CharSequence
chars, codePoints, isEmpty
-
Constructor Details
-
RMXString
public RMXString()Creates an empty RMXString. -
RMXString
Creates an RMXString initialized with the given String and no attributes. -
RMXString
Creates an RMXString initialized with the given String with all characters set to the given style. -
RMXString
Creates an RMXString initialized with the given String with all characters set to the given attributes.
-
-
Method Details
-
getText
Returns the simple String represented by this RMXString. -
length
public int length()The length.- Specified by:
length
in interfaceCharSequence
-
charAt
public char charAt(int anIndex) Returns the char at given index.- Specified by:
charAt
in interfaceCharSequence
-
subSequence
Returns a subsequence.- Specified by:
subSequence
in interfaceCharSequence
-
setText
Sets the simple String represented by this RMXString. -
indexOf
Returns the index within this string of the first occurrence of the given substring. -
indexOf
Returns the index within this string of first occurrence of given substring, starting at given index. -
addChars
Appends the given String to the end of this XString. -
addChars
Appends the given chars with the given attribute(s). -
addChars
Appends the given string to the end of this XString, with the given attributes. -
addChars
Adds chars at index. -
addChars
Appends the given string to this XString, with the given attributes, at the given index. -
addChars
Appends the given string to this XString, with the given attributes, at the given index. -
removeChars
public void removeChars(int aStart, int anEnd) Removes characters in given range. -
replaceChars
Replaces chars in given range, with given String. -
replaceChars
Replaces chars in given range, with given String, using the given attributes. -
addString
Adds an XString to this string at given index. -
replaceString
Replaces the chars in given range, with given XString. -
getRun
Returns the XString head run. -
getRunCount
public int getRunCount()Returns the number of runs in this XString. -
getRun
Returns the specific Run at the given index in this XString. -
getRunLast
Returns the last run in this XString (convenience). -
getRunAt
Returns the XString run that contains or ends at given index. -
getRunAt
Returns the XString run that contains or ends (if given option is true) at given index. -
getNumberFormat
-
setNumberFormat
-
setNumberFormat
-
getDateFormat
-
setDateFormat
-
setDateFormat
-
setFormat
-
getStyleAt
Returns the text style for the run at the given character index. -
getStyleAt
Returns the text style for the run at the given character index. -
setStyle
Sets the text style for given range. -
setAttribute
Applies the given attribute to whole xstring, assuming it's a basic attr types (font, color, etc.). -
setAttribute
Applies the given attribute to the given character range, assuming it's a basic attr type (font, color, etc.). -
setAttribute
Adds a given attribute of given type to the whole string. -
setAttribute
Sets a given attribute to a given value for a given range. -
getFontAt
Returns the current font at the given character index. -
getParagraphAt
Returns the current paragraph at the given character index. -
setParagraph
Sets the paragraph for the given character index range. -
setUnderlined
public void setUnderlined(boolean aFlag) Sets the xstring to be underlined. -
getAlignX
Returns the horizontal alignment of the first paragraph of the xstring. -
setAlignX
Sets the horizontal alignment of the xstring. -
getDefaultFont
Returns the default font for this string. -
getDefaultColor
Returns the default color for this string. -
getDefaultParagraph
Returns the default paragraph for this string. -
getDefaultFormat
Returns the default format for this string. -
getDefaultAttribute
Returns the default for a given key. -
getRepresentableString
Returns a version of this string that substitutes alternate fonts for any characters that cannot be displayed in their associated fonts (simply returns the receiver if all characters are valid). -
substring
Returns an XString for given char range. -
substring
Returns an XString for given char range. -
rpgClone
Creates a clone of the receiver, with substitution performed on @-sign delineated keys. -
firePropertyChange
protected void firePropertyChange(PropertyChangeEvent anEvent, String aName, Object oldVal, Object newVal, int anIndex) Override so RMXStringRun can reach this and to reset representable string and version.- Overrides:
firePropertyChange
in classRMObject
-
setFirePropertyChangeEnabled
public void setFirePropertyChangeEnabled(boolean aValue) Sets whether string fires property change events. -
hasListeners
public boolean hasListeners()Override to return false if FirePropertyChangeEnabled is off.- Overrides:
hasListeners
in classRMListenerList
-
toXML
XML archival.- Specified by:
toXML
in interfaceArchivable
-
fromXML
XML unarchival.- Specified by:
fromXML
in interfaceArchivable
-
equals
Standard Object equals implementation. -
clone
Returns a clone of this x string.- Overrides:
clone
in classRMListenerList
-
toString
Standard toString implementation.- Specified by:
toString
in interfaceCharSequence
- Overrides:
toString
in classRMObject
-