Package com.inductiveautomation.rm.shape
Class RMTextShape
java.lang.Object
com.inductiveautomation.rm.base.RMListenerList
com.inductiveautomation.rm.base.RMObject
com.inductiveautomation.rm.shape.RMShape
com.inductiveautomation.rm.shape.RMRectShape
com.inductiveautomation.rm.shape.RMTextShape
- All Implemented Interfaces:
Archivable
,DeepChangeListener
,RMPropertyChanger
,RMTypes
,PropertyChangeListener
,Cloneable
,EventListener
- Direct Known Subclasses:
RMCrossTabCell
,RMGraphPartLabelAxis
,RMGraphPartValueAxis
,RMLinkedText
,RMTableRowCellTextShape
,RMText
This class is an RMShape subclass for handling rich text. Text is probably the most common and useful element in a
ReportMill template. You might use this class to programmatically build or modify a template, like this:
RMXString xstring = new RMXString("Hello world!", RMFont.getFont("Arial", 12), RMColor.red); RMText text = new RMText(xstring); template.getPage(0).addChild(text); text.setXY(36, 36); text.setSizeToFit();
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.inductiveautomation.rm.base.RMTypes
RMTypes.Align, RMTypes.AlignX, RMTypes.AlignY
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final byte
static final byte
static final byte
Fields inherited from class com.inductiveautomation.rm.shape.RMShape
BINDING_PROP_NAME, STROKE_BORDER, STROKE_DOUBLE, STROKE_HIDDEN, STROKE_SHAPE
-
Constructor Summary
ConstructorsConstructorDescriptionCreates an empty text instance.RMTextShape
(RMXString string) Creates a text instance initialized with the given RMXString.RMTextShape
(String plainText) Creates a text instance initialized with the given plain text String. -
Method Summary
Modifier and TypeMethodDescriptionclone()
Standard clone implementation.protected double
computePrefHeight
(double aWidth) Override to compute from RMTextLayout.protected double
computePrefWidth
(double aHeight) Override to compute from RMTextLayout.void
copyText
(RMTextShape aText) Copies attributes from given object.protected RMShape
createDivideShapeRemainder
(byte anEdge) Creates a shape suitable for the "remainder" portion of a divideShape call (just a clone by default).Creates a new layout.protected RMXString
Creates the xstring for this text.fromXML
(RXArchiver anArchiver, RXElement anElement) XML unarchival.void
fromXMLFinish
(RXArchiver anArchiver, RXElement anElement) XML reference unarchival - to unarchive linked text.Returns the alignment for char 0.Returns the vertical alignment.Returns the alignment as a string, one of: "left", "center" or "right".Returns the autosizing default.float
Returns the char spacing at char 0.boolean
Returns whether text should coalesce consecutive newlines in rpgClone.boolean
Returns whether text should always draw at least a light gray border (useful when editing).getFont()
Returns the font for char 0.float
Returns the line gap at char 0.float
Returns the maximum line height at char 0.float
Returns the minimum line height at char 0.float
Returns the line spacing at char 0.Returns the linked text for this text (if any).Returns margin.int
Returns the bottom margin of the text (defaults to 0).Returns the default margin of the text (top=1, left=2, right=2, bottom=0).int
Returns the left margin of the text (default to 2).int
Returns the right margin of the text (defaults to 2).Returns the margin as a string.int
Returns the top margin of the text (defaults to 1).Overridden from RMShape to provide the outlines of all the glyphsboolean
Returns the outline for char 0.getPath()
Returns the path for this shape (might be PathShape).Overrides shape implementation to pass through getPathInBounds(inset).getPathInBounds
(int anInset) Returns the shape's path scaled to the shape's current bounds.Returns the shape that provides the path for this text to wrap text to.boolean
Returns whether text should wrap around other shapes that cause wrap.protected void
getPropertyNames
(List<String> aList) Returns the property names for RMShape.getText()
Returns the text associated with this RMText as a plain String.Returns the color of the first character of the xstring associated with this RMText.Returns a text layout.int
Returns the last character index visible in this text.int
Returns the first character index visible in this text.byte
getWraps()
Returns the wrapping behavior for over-filled rpgCloned text (NONE, WRAP, SHRINK).Returns the XString associated with this RMText.boolean
Returns whether all characters can be visibly rendered in text bounds.boolean
Override this for shapes (like a table row) that don't don't make sense to delete by themselves.boolean
Editor method.boolean
Returns if char 0 is underlined.int
length()
Returns the length, in characters, of the XString associated with this RMText.protected List<RMTextShape>
paginate()
Paginates this text by creating linked texts to show all text and returns a list of this text and the linked texts.void
paintShape
(RMShapePainter aPntr) Paints a text shape.void
paintShapeBack
(RMShapePainter aPntr) Paints the text shape background.void
paintShapeText
(RMShapePainter aPntr) Paints the text shape text.protected void
paintTextRun
(RMShapePainter aPntr, RMTextRun aRun) Paints the layout in a given graphics.void
peerDidChange
(RMShape aShape) This notification method is called when any peer is changed.void
propertyChange
(PropertyChangeEvent anEvent) Override to catch XString changes.protected void
resolvePageReferences
(ReportOwner aRptOwner, Object userInfo) Re-does the RPG clone to resolve any @Page@ keys (assumed to be present in userInfo).void
Override to do home-brew layout.protected RMShape
rpgShape
(ReportOwner anRptOwner, RMShape aParent) Generate report.void
scaleFonts
(double aFactor) Resizes all the fonts in text string by given factor.void
setAlignmentX
(RMTypes.AlignX anAlignmentX) Sets the align for all chars.void
setAlignmentY
(RMTypes.AlignY anAlignment) Sets the vertical alignment.void
setCharSpacing
(float aValue) Sets the char spacing for the text string.void
setCoalesceNewlines
(boolean aFlag) Sets whether text should coalesce consecutive newlines in rpgClone.void
setDateFormat
(String dateFormatStr) Applies the given date format.void
setDrawsSelectionRect
(boolean aValue) Sets whether text should always draw at least a light-gray border (useful when editing).void
Sets the font for all characters.void
Deprecated.void
setHeight
(double aValue) Override to revalidate.void
setLineGap
(float aHeight) Sets the line gap for all chars.void
setLineHeightMax
(float aHeight) Sets the maximum line height for all chars.void
setLineHeightMin
(float aHeight) Sets the minimum line height for all chars.void
setLineSpacing
(float aHeight) Sets the line spacing for all chars.void
setLinkedText
(RMLinkedText aLinkedText) Sets the linked text for this text (if any).void
Sets margin.void
setMarginString
(String aString) Sets the margin as a string.void
setNegativeInRed
(boolean negativeInRed) void
setNullFormat
(String nullFormat) void
setNumberFormat
(String numberFormatStr) Applies the given number format.void
setOutline
(RMXString.Outline anOutline) Sets the Outline for all characters.void
setPathShape
(RMShape aShape) Sets the shape that provides the path for this text to wrap text to.void
setPerformsWrap
(boolean aFlag) Sets whether text should wrap around other shapes that cause wrap.void
setRadius
(float aValue) Overrides rectangle implementation to potentially clear path shape.void
Replaces the current text associated with this RMText with the given String.void
setTextColor
(RMColor aColor) Sets the color of the characters in the XString associated with this RMText.void
setUnderlined
(boolean aFlag) Sets all chars to be underlined.void
setWidth
(double aValue) Override to revalidate.void
setWraps
(byte aValue) Sets the wrapping behavior for over-filled rpgCloned text (NONE, WRAP, SHRINK).void
setXString
(RMXString xString) Sets the XString associated with this RMText.boolean
Editor method - indicates that this shape can be super selected.toString()
Standard toString implementation.toXML
(RXArchiver anArchiver) XML archival.Methods inherited from class com.inductiveautomation.rm.shape.RMRectShape
getRadius
Methods inherited from class com.inductiveautomation.rm.shape.RMShape
acceptsChildren, acceptsMouse, addBinding, addBinding, addDeepChangeListener, addMouseListener, animUpdate, bounds, childrenSuperSelectImmediately, cloneDeep, contains, convertedPointFromShape, convertedPointToShape, convertedRectFromShape, convertedRectToShape, convertedVectorFromShape, convertedVectorToShape, convertFromShape, convertPathFromShape, convertPathToShape, convertPointFromShape, convertPointToShape, convertRectFromShape, convertRectToShape, convertToShape, convertVectorFromShape, convertVectorToShape, copyShape, deepChange, divideShapeFromEdge, divideShapeFromTop, get, get, getAlignment, getAncestor, getAncestorCount, getAncestorInCommon, getAnimator, getAnimator, getAutosizing, getBestHeight, getBestHeight, getBestWidth, getBestWidth, getBinding, getBinding, getBindingCount, getBindings, getBounds, getBoundsInside, getBoundsMarked, getBoundsMarkedDeep, getChild, getChildAnimator, getChildAnimator, getChildClipShape, getChildCount, getChildren, getClipShape, getColor, getDashArrayString, getDashPhase, getDatasetEntity, getDatasetKey, getDisplayedFill, getDisplayedStroke, getDocument, getEffect, getEventAdapter, getFill, getFormat, getFrame, getFrameHeight, getFrameMaxX, getFrameMaxY, getFrameWidth, getFrameX, getFrameXY, getFrameY, getHeight, getHover, getLayoutInfo, getMaxX, getMaxY, getMinHeight, getMinHeight, getMinWidth, getMinWidth, getName, getOpacity, getOpacityDeep, getPageBreak, getPageBreakMax, getPageBreakPage, getPageBreakPageMax, getPageShape, getParent, getParent, getPrefHeight, getPrefHeight, getPrefWidth, getPrefWidth, getPropertyNameMapped, getPropertyNames, getRoll, getRootShape, getRSS, getScaleX, getScaleY, getShapesToAncestor, getShapesToDescendant, getShapesToShape, getSize, getSkewX, getSkewY, getStroke, getStrokeColor, getStrokeOnTop, getStrokeStyle, getStrokeWidth, getTimeline, getTimeline, getTransform, getTransformFromShape, getTransformInverse, getTransformToShape, getUndoer, getURL, getVisbileBounds, getVisibleBounds, getVisibleBounds, getVisibleBounds, getWidth, getX, getXY, getXYP, getY, height, indexOf, intersects, isAncestor, isAnimProperty, isDescendant, isEditing, isEnabled, isFontSet, isHittable, isLocked, isMinHeightSet, isMinWidthSet, isPrefHeightSet, isPrefWidthSet, isRoot, isRSS, isShowing, isUseFill, isUseStroke, isViewing, isVisible, mouseClicked, mouseDragged, mouseEntered, mouseExited, mouseMoved, mousePressed, mouseReleased, offsetXY, page, pageMax, paint, paintShapeAll, paintShapeChildren, paintShapeOver, put, removeBinding, removeBinding, removeDeepChangeListener, removeFromParent, removeMouseListener, repaint, repaint, rpgAll, rpgBindings, setAlignment, setAutosizing, setBestHeight, setBestSize, setBounds, setBounds, setColor, setDashArrayString, setDashPhase, setEffect, setEnabled, setFill, setFrame, setFrame, setFrameSize, setFrameX, setFrameXY, setFrameXY, setFrameY, setHover, setLayoutInfo, setLocked, setMinHeight, setMinSize, setMinWidth, setName, setOpacity, setParent, setPrefHeight, setPrefWidth, setRoll, setScaleX, setScaleXY, setScaleY, setShowing, setSize, setSize, setSkewX, setSkewXY, setSkewY, setStroke, setStrokeColor, setStrokeStyle, setStrokeWidth, setTime, setTimeline, setURL, setUseFill, setUseStroke, setVisible, setX, setXY, setXY, setXYP, setY, shapeHidden, shapeShown, undoerDisable, undoerEnable, undoerSetUndoTitle, width, x, y
Methods inherited from class com.inductiveautomation.rm.base.RMObject
addPropertyChangeListener, firePropertyChange, firePropertyChange, firePropertyChange, getPCEvent, removePropertyChangeListener, sendPropertyChange
Methods inherited from class com.inductiveautomation.rm.base.RMListenerList
addListener, getListener, getListenerCount, getListenerCount, getListenerList, getListeners, hasListeners, removeListener
-
Field Details
-
WRAP_NONE
public static final byte WRAP_NONE- See Also:
-
WRAP_BASIC
public static final byte WRAP_BASIC- See Also:
-
WRAP_SCALE
public static final byte WRAP_SCALE- See Also:
-
-
Constructor Details
-
RMTextShape
public RMTextShape()Creates an empty text instance. -
RMTextShape
Creates a text instance initialized with the given RMXString. -
RMTextShape
Creates a text instance initialized with the given plain text String.
-
-
Method Details
-
getXString
Returns the XString associated with this RMText. -
setXString
Sets the XString associated with this RMText. -
createXString
Creates the xstring for this text. -
length
public int length()Returns the length, in characters, of the XString associated with this RMText. -
getText
Returns the text associated with this RMText as a plain String. -
setText
Replaces the current text associated with this RMText with the given String. -
getVisibleStart
public int getVisibleStart()Returns the first character index visible in this text. -
getVisibleEnd
public int getVisibleEnd()Returns the last character index visible in this text. -
isAllTextVisible
public boolean isAllTextVisible()Returns whether all characters can be visibly rendered in text bounds. -
getFont
Returns the font for char 0. -
setFont
Sets the font for all characters. -
setFormat
Deprecated.Sets the format for all characters. -
getNegativeInRed
public boolean getNegativeInRed() -
setNegativeInRed
public void setNegativeInRed(boolean negativeInRed) -
getNumberFormat
-
setNumberFormat
Applies the given number format.Does nothing if:
- The incoming format is null
- The incoming format is an empty string
- The incoming format is not a valid
DecimalFormat
-
getDateFormat
-
setDateFormat
Applies the given date format. If we get null in, the existing format won't change. -
getNullFormat
-
setNullFormat
-
getTextColor
Returns the color of the first character of the xstring associated with this RMText.- Overrides:
getTextColor
in classRMShape
-
setTextColor
Sets the color of the characters in the XString associated with this RMText.- Overrides:
setTextColor
in classRMShape
-
isUnderlined
public boolean isUnderlined()Returns if char 0 is underlined.- Overrides:
isUnderlined
in classRMShape
-
setUnderlined
public void setUnderlined(boolean aFlag) Sets all chars to be underlined.- Overrides:
setUnderlined
in classRMShape
-
getOutline
Returns the outline for char 0.- Overrides:
getOutline
in classRMShape
-
setOutline
Sets the Outline for all characters.- Overrides:
setOutline
in classRMShape
-
getAlignmentX
Returns the alignment for char 0.- Overrides:
getAlignmentX
in classRMShape
-
setAlignmentX
Sets the align for all chars. Because this takes an enum, we won't allow bindings to it.- Overrides:
setAlignmentX
in classRMShape
-
getAlignString
Returns the alignment as a string, one of: "left", "center" or "right". -
getAlignmentY
Returns the vertical alignment.- Overrides:
getAlignmentY
in classRMShape
-
setAlignmentY
Sets the vertical alignment. Because this takes an enum, we won't allow bindings to it.- Overrides:
setAlignmentY
in classRMShape
-
getWraps
public byte getWraps()Returns the wrapping behavior for over-filled rpgCloned text (NONE, WRAP, SHRINK). -
setWraps
public void setWraps(byte aValue) Sets the wrapping behavior for over-filled rpgCloned text (NONE, WRAP, SHRINK). No bindings because this takes a byte and no expression function returns a byte. -
getPerformsWrap
public boolean getPerformsWrap()Returns whether text should wrap around other shapes that cause wrap. -
setPerformsWrap
public void setPerformsWrap(boolean aFlag) Sets whether text should wrap around other shapes that cause wrap. -
getCoalesceNewlines
public boolean getCoalesceNewlines()Returns whether text should coalesce consecutive newlines in rpgClone. -
setCoalesceNewlines
public void setCoalesceNewlines(boolean aFlag) Sets whether text should coalesce consecutive newlines in rpgClone. -
getDrawsSelectionRect
public boolean getDrawsSelectionRect()Returns whether text should always draw at least a light gray border (useful when editing). -
setDrawsSelectionRect
public void setDrawsSelectionRect(boolean aValue) Sets whether text should always draw at least a light-gray border (useful when editing). -
getCharSpacing
public float getCharSpacing()Returns the char spacing at char 0. -
setCharSpacing
public void setCharSpacing(float aValue) Sets the char spacing for the text string. -
getLineSpacing
public float getLineSpacing()Returns the line spacing at char 0. -
setLineSpacing
public void setLineSpacing(float aHeight) Sets the line spacing for all chars. -
getLineGap
public float getLineGap()Returns the line gap at char 0. -
setLineGap
public void setLineGap(float aHeight) Sets the line gap for all chars. -
getLineHeightMin
public float getLineHeightMin()Returns the minimum line height at char 0. -
setLineHeightMin
public void setLineHeightMin(float aHeight) Sets the minimum line height for all chars. -
getLineHeightMax
public float getLineHeightMax()Returns the maximum line height at char 0. -
setLineHeightMax
public void setLineHeightMax(float aHeight) Sets the maximum line height for all chars. -
getMargin
Returns margin. -
setMargin
Sets margin. Not bindable because it takes Insets. -
getMarginDefault
Returns the default margin of the text (top=1, left=2, right=2, bottom=0). -
getMarginString
Returns the margin as a string. -
setMarginString
Sets the margin as a string. -
getMarginLeft
public int getMarginLeft()Returns the left margin of the text (default to 2). -
getMarginRight
public int getMarginRight()Returns the right margin of the text (defaults to 2). -
getMarginTop
public int getMarginTop()Returns the top margin of the text (defaults to 1). -
getMarginBottom
public int getMarginBottom()Returns the bottom margin of the text (defaults to 0). -
setWidth
public void setWidth(double aValue) Override to revalidate. -
setHeight
public void setHeight(double aValue) Override to revalidate. -
getPath
Returns the path for this shape (might be PathShape).- Overrides:
getPath
in classRMRectShape
-
getPathInBounds
Overrides shape implementation to pass through getPathInBounds(inset).- Overrides:
getPathInBounds
in classRMShape
-
getPathInBounds
Returns the shape's path scaled to the shape's current bounds. -
peerDidChange
This notification method is called when any peer is changed. -
getPathShape
Returns the shape that provides the path for this text to wrap text to. -
setPathShape
Sets the shape that provides the path for this text to wrap text to. -
setRadius
public void setRadius(float aValue) Overrides rectangle implementation to potentially clear path shape.- Overrides:
setRadius
in classRMRectShape
-
getLinkedText
Returns the linked text for this text (if any). -
setLinkedText
Sets the linked text for this text (if any). -
getTextLayout
Returns a text layout. -
createTextLayout
Creates a new layout. -
computePrefWidth
protected double computePrefWidth(double aHeight) Override to compute from RMTextLayout.- Overrides:
computePrefWidth
in classRMShape
-
computePrefHeight
protected double computePrefHeight(double aWidth) Override to compute from RMTextLayout.- Overrides:
computePrefHeight
in classRMShape
-
scaleFonts
public void scaleFonts(double aFactor) Resizes all the fonts in text string by given factor. -
rpgShape
Generate report. -
paginate
Paginates this text by creating linked texts to show all text and returns a list of this text and the linked texts. -
resolvePageReferences
Re-does the RPG clone to resolve any @Page@ keys (assumed to be present in userInfo).- Overrides:
resolvePageReferences
in classRMShape
-
createDivideShapeRemainder
Creates a shape suitable for the "remainder" portion of a divideShape call (just a clone by default).- Overrides:
createDivideShapeRemainder
in classRMShape
-
getMaskPath
Overridden from RMShape to provide the outlines of all the glyphs- Overrides:
getMaskPath
in classRMShape
-
superSelectable
public boolean superSelectable()Editor method - indicates that this shape can be super selected.- Overrides:
superSelectable
in classRMShape
-
isStructured
public boolean isStructured()Editor method. -
paintShape
Paints a text shape.- Overrides:
paintShape
in classRMShape
-
paintShapeBack
Paints the text shape background. -
paintShapeText
Paints the text shape text. -
paintTextRun
Paints the layout in a given graphics. -
copyText
Copies attributes from given object. -
getPropertyNames
Returns the property names for RMShape.- Overrides:
getPropertyNames
in classRMShape
-
propertyChange
Override to catch XString changes.- Specified by:
propertyChange
in interfacePropertyChangeListener
- Overrides:
propertyChange
in classRMShape
-
revalidate
public void revalidate()Override to do home-brew layout. -
clone
Standard clone implementation. -
toXML
XML archival.- Specified by:
toXML
in interfaceArchivable
- Overrides:
toXML
in classRMRectShape
-
fromXML
XML unarchival.- Specified by:
fromXML
in interfaceArchivable
- Overrides:
fromXML
in classRMRectShape
-
fromXMLFinish
XML reference unarchival - to unarchive linked text. -
toString
Standard toString implementation. -
isDeletable
public boolean isDeletable()Description copied from class:RMShape
Override this for shapes (like a table row) that don't don't make sense to delete by themselves.- Overrides:
isDeletable
in classRMShape
-
getAutosizingDefault
Description copied from class:RMShape
Returns the autosizing default.- Overrides:
getAutosizingDefault
in classRMShape
-