Package com.reportmill.text
Class RMXString
java.lang.Object
com.reportmill.base.RMObject
com.reportmill.text.RMXString
- All Implemented Interfaces:
- RMArchiver.Archiving,- 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 disect 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 SummaryNested ClassesModifier and TypeClassDescriptionstatic classThe Outline inner class represents the attributes of outlined text: strokeWidth and fillColor.
- 
Field SummaryFields
- 
Constructor SummaryConstructorsConstructorDescriptionCreates an empty RMXString.Creates an RMXString intialized with the given String and no attributes.Creates an RMXString initialized with the given String with all characters set to the given attribute (should be a common attribute type like RMFont, RMColor, RMFormat, etc.).Creates an RMXString initialized with the given String with all characters set to the given attributes objects in object array (should be common attribute types like RMFont, RMColor, RMFormat, etc.).Creates an RMXString initialized with the given String with all characters set to the given attributes.
- 
Method SummaryModifier and TypeMethodDescriptionvoidAppends the given XString to the end of this String.voidAppends the given XString to this XString, at the given index.voidAppends the given String to the end of this XString.voidAppends the given String to this XString, at the given index.voidAppends the given string to the end of this XString, with the given attributes.voidAppends the given String to this XString, with the given attributes, at the given index.voidaddAttribute(Object attr) Applies the given attribute to whole xstring, assuming it's a basic attr types (font, color, etc.).voidaddAttribute(Object attr, int start, int end) Applies the given attribute to the given character range, assuming it's a basic attr type (font, color, etc.).voidaddAttribute(String aKey, Object object) Adds a given attribute of given type to the whole string.voidaddAttribute(String aKey, Object attr, int start, int end) Adds a given attribute of given type to the given range of the string.voidaddAttribute(String aKey, Object attr, int start, int end, boolean ifAbsent) Adds a given attribute of given type to the given range of the string, only if specified type is missing.voidaddAttributes(Map attrs, int start, int end) Adds the attributes in the given map to the specified character range.voidaddAttributes(Map attrs, int start, int end, boolean ifAbsent) Adds the attributes in the given map to the specified character range.voidAligns the xstring center.voidAligns the xstring left.voidAligns the xstring right.Returns a blended version of the receiver and the given string (0 is receiver, 1 is given string).charcharAt(int anIndex) Returns the character at the given index.clone()Returns a clone of the receiver.voidReplaces any occurrance of consecutive newlines with a single newline.voiddelete(int start, int end) Deletes the chars in the given range.voidNotifies string that something significant changed.booleanStandard Object equals implementation.fromXML(RXArchiver anArchiver, RXElement anElement) XML unarchival.bytegetAlign()Returns the horizontal alignment of the first paragraph of the xstring.getAttributeAt(String aKey, int anIndex) Returns the value for the given attribute key at the given character index.getAttributes(int anIndex) Returns the attributes Map for the run at the given index.getAttributesAt(int anIndex) Returns the attributes Map for the run at the given character index.getColorAtIndex(int index) Returns the current color at the given character index.getFontAtIndex(int index) Returns the current font at the given character index.floatReturns the value that should be multipied times all font sizes in this string (defaults to 1).getFormatAtIndex(int index) Returns the current format at the given character index.getParagraphAtIndex(int index) 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(int anIndex) Returns the specific Run at the given index in this XString.getRunAt(int anIndex) Returns the XString run at the given index.getRunAtExactly(int anIndex) Returns an XString run for the given character index, potentially splitting an existing run to ensure that new run starts at the given index.intReturns the number of runs in this XString.intgetRunIndexAt(int anIndex) Returns the XString run index for the given character index.intgetRunIndexAtExactly(int anIndex) Returns an XString segement index for the given character index, potentially splitting an existing run to ensure that new run starts at the given index.Returns the last run in this XString (convenience).intReturns the version of this xstring.static RMXStringgetXStringForHTML(String html, RMFont aFont) Creates and returns an XString from a given HTML String.static RMXStringgetXStringForRTF(String rtf, RMFont aFont) Creates and returns an XString from a given RTF String.intReturns the index within this string of the first occurrence of the given substring.intReturns the index within this string of first occurrence of given substring, starting at given index.initWithArchiver(RMArchiver anArchiver) Legacy archival.intlength()Returns the number of characters associated with this RMXString.voidremoveAttribute(String aKey, int start, int end) Removes any attribute of the specified type from the specified range of the string.voidReplaces the chars in given range, with given XString.voidReplaces chars in given range, with given String.voidReplaces chars in given range, with given String, using the given attributes.voidReplaces all chars of this XString with given String.rpgClone(ReportMill aReportMill, Object userInfo, RMShape aShape) Creates a clone of the receiver, with substitution performed on @-sign deliniated keys.Returns a List of XString substrings of this XString that are separated by the given separator String.voidsetAlign(int align) Sets the horizontal alignment of the xstring.voidsetFontScale(float aScale) Sets a value to that should be multiplied times all font sizes in this string.voidsetOutlined(boolean flag) Sets the xstring to be outlined.voidsetParagraph(RMParagraph ps, int start) Sets the paragraph at the given character index.voidsetParagraph(RMParagraph ps, int start, int end) Sets the paragraph for the given character index range.voidsetUnderlined(boolean flag) Sets the xstring to be underlined.string()Returns the plain String associated with this RMXString.substring(int index) Returns the substring from the given index to end of XString.substring(int start, int end) Returns the substring from the given start index to the given end index.toString()Returns the String associated with this XString.Returns an XML style string representation of the attributes and string runs in this XString.toXML(RXArchiver anArchiver) XML archival.Methods inherited from class com.reportmill.base.RMObjectcopy, didChange, didUndo, getAnimAttribute, getClassNameShort, undoClone, undoCopy, undoEquals
- 
Field Details- 
FONT_KEY- See Also:
 
- 
COLOR_KEY- See Also:
 
- 
FORMAT_KEY- See Also:
 
- 
UNDERLINE_KEY- See Also:
 
- 
OUTLINE_KEY- See Also:
 
- 
PARAGRAPH_KEY- See Also:
 
- 
FONT_SCALE_KEY- See Also:
 
- 
SCRIPTING_KEY- See Also:
 
- 
CHAR_SPACING_KEY- See Also:
 
 
- 
- 
Constructor Details- 
RMXStringpublic RMXString()Creates an empty RMXString.
- 
RMXStringCreates an RMXString intialized with the given String and no attributes.
- 
RMXStringCreates an RMXString initialized with the given String with all characters set to the given attributes.
- 
RMXStringCreates an RMXString initialized with the given String with all characters set to the given attribute (should be a common attribute type like RMFont, RMColor, RMFormat, etc.).
- 
RMXStringCreates an RMXString initialized with the given String with all characters set to the given attributes objects in object array (should be common attribute types like RMFont, RMColor, RMFormat, etc.).
 
- 
- 
Method Details- 
stringReturns the plain String associated with this RMXString.
- 
lengthpublic int length()Returns the number of characters associated with this RMXString.
- 
indexOfReturns the index within this string of the first occurrence of the given substring.
- 
indexOfReturns the index within this string of first occurrence of given substring, starting at given index.
- 
charAtpublic char charAt(int anIndex) Returns the character at the given index.
- 
getRunCountpublic int getRunCount()Returns the number of runs in this XString.
- 
getRunReturns the specific Run at the given index in this XString.
- 
getRunLastReturns the last run in this XString (convenience).
- 
getAttributesReturns the attributes Map for the run at the given index.
- 
getAttributeAtReturns the value for the given attribute key at the given character index.
- 
getAttributesAtReturns the attributes Map for the run at the given character index.
- 
addAttributesAdds the attributes in the given map to the specified character range.
- 
addAttributesAdds the attributes in the given map to the specified character range. Provides an option to only apply each individual attribute if it isn't already specified for that character range.
- 
addAttributeAdds a given attribute of given type to the whole string.
- 
addAttributeAdds a given attribute of given type to the given range of the string.
- 
addAttributeAdds a given attribute of given type to the given range of the string, only if specified type is missing.
- 
removeAttributeRemoves any attribute of the specified type from the specified range of the string.
- 
getFontAtIndexReturns the current font at the given character index.
- 
getColorAtIndexReturns the current color at the given character index.
- 
getFormatAtIndexReturns the current format at the given character index.
- 
getParagraphAtIndexReturns the current paragraph at the given character index.
- 
setParagraphSets the paragraph at the given character index.
- 
setParagraphSets the paragraph for the given character index range.
- 
addAttributeApplies the given attribute to whole xstring, assuming it's a basic attr types (font, color, etc.).
- 
addAttributeApplies the given attribute to the given character range, assuming it's a basic attr type (font, color, etc.).
- 
getFontScalepublic float getFontScale()Returns the value that should be multipied times all font sizes in this string (defaults to 1).
- 
setFontScalepublic void setFontScale(float aScale) Sets a value to that should be multiplied times all font sizes in this string.
- 
addAppends the given String to the end of this XString.
- 
addAppends the given String to this XString, at the given index.
- 
addAppends the given XString to the end of this String.
- 
addAppends the given XString to this XString, at the given index.
- 
addAppends the given string to the end of this XString, with the given attributes.
- 
addAppends the given String to this XString, with the given attributes, at the given index.
- 
replaceReplaces all chars of this XString with given String.
- 
replaceReplaces chars in given range, with given String.
- 
replaceReplaces chars in given range, with given String, using the given attributes.
- 
replaceReplaces the chars in given range, with given XString.
- 
deletepublic void delete(int start, int end) Deletes the chars in the given range.
- 
substringReturns the substring from the given index to end of XString.
- 
substringReturns the substring from the given start index to the given end index.
- 
separateReturns a List of XString substrings of this XString that are separated by the given separator String.
- 
coalesceNewlinespublic void coalesceNewlines()Replaces any occurrance of consecutive newlines with a single newline.
- 
getXStringForHTMLCreates and returns an XString from a given HTML String.
- 
getXStringForRTFCreates and returns an XString from a given RTF String.
- 
getRunAtReturns the XString run at the given index.
- 
getRunIndexAtpublic int getRunIndexAt(int anIndex) Returns the XString run index for the given character index.
- 
getRunAtExactlyReturns an XString run for the given character index, potentially splitting an existing run to ensure that new run starts at the given index.
- 
getRunIndexAtExactlypublic int getRunIndexAtExactly(int anIndex) Returns an XString segement index for the given character index, potentially splitting an existing run to ensure that new run starts at the given index.
- 
didChangepublic void didChange()Notifies string that something significant changed. It's mostly for internal use (it's called automatically by most of XStrings modification methods).
- 
setUnderlinedpublic void setUnderlined(boolean flag) Sets the xstring to be underlined.
- 
setOutlinedpublic void setOutlined(boolean flag) Sets the xstring to be outlined.
- 
getAlignpublic byte getAlign()Returns the horizontal alignment of the first paragraph of the xstring.
- 
setAlignpublic void setAlign(int align) Sets the horizontal alignment of the xstring.
- 
alignLeftpublic void alignLeft()Aligns the xstring left.
- 
alignRightpublic void alignRight()Aligns the xstring right.
- 
alignCenterpublic void alignCenter()Aligns the xstring center.
- 
getVersionpublic int getVersion()Returns the version of this xstring.
- 
getRepresentableStringReturns 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).
- 
cloneReturns a clone of the receiver.
- 
equalsStandard Object equals implementation.
- 
rpgCloneCreates a clone of the receiver, with substitution performed on @-sign deliniated keys.
- 
blendReturns a blended version of the receiver and the given string (0 is receiver, 1 is given string). The current implementation actually only blends text color.
- 
initWithArchiverLegacy archival.- Specified by:
- initWithArchiverin interface- RMArchiver.Archiving
- Overrides:
- initWithArchiverin class- RMObject
 
- 
toXMLXML archival.
- 
fromXMLXML unarchival.
- 
toStringReturns the String associated with this XString.
- 
toStringXMLReturns an XML style string representation of the attributes and string runs in this XString.
 
-