Package com.inductiveautomation.rm.shape
Class RMTable
- java.lang.Object
-
- com.inductiveautomation.rm.base.RMListenerList
-
- com.inductiveautomation.rm.base.RMObject
-
- com.inductiveautomation.rm.shape.RMShape
-
- com.inductiveautomation.rm.shape.RMParentShape
-
- com.inductiveautomation.rm.shape.RMTable
-
- All Implemented Interfaces:
Archivable,DeepChangeListener,RMPropertyChanger,RMTypes,RMShapeSelfInit,java.beans.PropertyChangeListener,java.lang.Cloneable,java.util.EventListener
public class RMTable extends RMParentShape implements RMShapeSelfInit
This RMShape subclass provides functionality to graphically represent a list of data in a ReportMill report. It also supports data manipulation such as grouping and sorting.
-
-
Nested Class Summary
-
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 java.lang.StringDEFAULT_TABLE_DATAKEY-
Fields inherited from class com.inductiveautomation.rm.shape.RMShape
BINDING_PROP_NAME, STROKE_BORDER, STROKE_DOUBLE, STROKE_HIDDEN, STROKE_SHAPE
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddChildWithTitle(RMTableRow aChild, int anIndex, java.lang.String aTitle)Convenience to set a child title and add to the table.RMTableRowaddDetails(java.lang.String aKey)Convenience to add details for grouping key.voidaddGrouping(RMGrouping aGrouping, int anIndex)Adds a given grouping to the table at the given grouping index.voidaddGroupingKey(java.lang.String aKey, int anIndex)Adds a grouping to the table for the given key string at the given grouping index.RMTableRowaddHeader(java.lang.String aKey)Convenience to add header for grouping key.RMTableRowaddSummary(java.lang.String aKey)Convenience to add summary for grouping key.booleanchildrenSuperSelectImmediately()Editor method - indicates that children should super select immediately when split shape is super selected.RMTableclone()Standard clone implementation.protected voidfromXMLChildren(RXArchiver anArchiver, RXElement anElement)XML unarchival for shape children.protected voidfromXMLShape(RXArchiver anArchiver, RXElement anElement)XML unarchival.RMShapegetChildWithTitle(java.lang.String aTitle)Returns a specific child with the given name.intgetColumnCount()Returns the number of columns that this table should be repeated over on the same page before paginating.doublegetColumnSpacing()Returns the space between a table that has more than one column (int printer points).java.lang.StringgetDatasetKey()Returns the dataset key associated with the table.java.lang.StringgetFilterKey()Returns the optional key chain expression string used to prune the table list derived from dataset key.RMGroupergetGrouper()Returns the grouper associated with the table.RMGroupinggetGrouping(int anIndex)Returns the individual grouping at the given index.RMGroupinggetGrouping(java.lang.String aKey)Returns the individual grouping that has the same key as the one given.RMGroupinggetGrouping(java.lang.String aKey, boolean doCreate, int anIndex)Returns the individual grouping that has the same key as the one given, with option to create at index if missing.intgetGroupingCount()Returns the number of groups in this table.intgetPageBreakGroupIndex()Returns the index of the grouping in the grouper at which an explicit.intgetResizeBarAtPoint(RMPoint aPoint)Returns the index of the resize bar that is hit by the given point.RMRectgetResizeBarBounds(int anIndex)Returns the bounds rect of the resize bar for the child at the given index.RMTableRowgetRow(int anIndex)Returns the specific table row at the given index.RMTableRowgetRow(java.lang.String aName)Returns the specific table row with the given name.booleangetStartingPageBreak()Returns whether this table should always start on a new page (if in table group).booleangetStartingRowPageBreak()Returns whether each row should always start on a new page (if in a table group).booleangetStrokeOnTop()Override to paint table stroke on top.protected voidgrouperChanged()Called when there is a grouper change to ensure that table rows match groupings.protected voidlayoutChildren()Performs layout.voidmoveGrouping(int fromIndex, int toIndex)Moves the grouping at the first index so that it resides at the second index.voidpaintShape(RMShapePainter aPntr)Paints a table shape.voidpaintShapeOver(RMShapePainter aPntr)Paints stroke around table after all children have drawn.voidpropertyChange(java.beans.PropertyChangeEvent anEvent)Override to update rows when grouper changes and revalidate when child height changes.voidremoveGrouping(RMGrouping aGrouping)Removes the given grouping.RMShaperpgAll(ReportOwner anOwner, RMShape aParent)Report generation for table.voidselfInit()voidsetColumnCount(int aValue)Sets the number of columns that this table should be repeated over on the same page before paginating.voidsetColumnSpacing(double aValue)Sets the space between a table that has more than one column (int printer points).voidsetDatasetKey(java.lang.String aKeyPath)Sets the dataset key associated with the table.voidsetFilterKey(java.lang.String aKeyExpr)Sets the optional key chain expression string used to prune the table list derived from dataset key.voidsetGrouper(RMGrouper aGrouper)Sets the grouper associated with the table.voidsetPageBreakGroupIndex(int aValue)Returns the index of the grouping in the grouper at which an explicit.voidsetStartingPageBreak(boolean aFlag)Sets whether this table should always start on a new page (if in table group).voidsetStartingRowPageBreak(boolean aFlag)Sets whether this table's rows should always start on a new page (if in table group).voidsetTitleForChild(java.lang.String aNm1, java.lang.String aNm2)Sets title for child of given name to new name.java.lang.StringtoString()Standard to string implementation (prints class name and shape bounds).protected RXElementtoXMLShape(RXArchiver anArchiver)XML archival.-
Methods inherited from class com.inductiveautomation.rm.shape.RMParentShape
addChild, addChild, addChild, addChild, addLayoutChild, bringShapesToFront, cloneDeep, computePrefHeight, computePrefWidth, divideShapeFromTop, fromXML, getBoundsOfChildren, getChild, getChildArray, getChildContaining, getChildCount, getChildLast, getChildren, getChildrenIntersecting, getChildrenWithClass, getChildrenWithClass, getChildWithClass, getChildWithName, getLayout, getNeedsLayout, getSourceURL, indexOfChild, isHittable, isShowing, isSourceURLSet, layout, relayout, removeChild, removeChild, removeChildren, removeLayoutChild, rpgChildren, sendShapesToBack, setHeight, setLayout, setNeedsLayout, setSourceURL, setWidth, toXML, toXMLChildren
-
Methods inherited from class com.inductiveautomation.rm.shape.RMShape
acceptsChildren, acceptsMouse, addBinding, addBinding, addDeepChangeListener, addMouseListener, animUpdate, bounds, contains, convertedPointFromShape, convertedPointToShape, convertedRectFromShape, convertedRectToShape, convertedVectorFromShape, convertedVectorToShape, convertFromShape, convertPathFromShape, convertPathToShape, convertPointFromShape, convertPointToShape, convertRectFromShape, convertRectToShape, convertToShape, convertVectorFromShape, convertVectorToShape, copyShape, createDivideShapeRemainder, deepChange, divideShapeFromEdge, get, get, getAlignment, getAlignmentX, getAlignmentY, getAncestor, getAncestorCount, getAncestorInCommon, getAnimator, getAnimator, getAutosizing, getAutosizingDefault, getBestHeight, getBestHeight, getBestWidth, getBestWidth, getBinding, getBinding, getBindingCount, getBindings, getBounds, getBoundsInside, getBoundsMarked, getBoundsMarkedDeep, getChildAnimator, getChildAnimator, getChildClipShape, getClipShape, getColor, getDashArrayString, getDashPhase, getDatasetEntity, getDisplayedFill, getDisplayedStroke, getDocument, getEffect, getEventAdapter, getFill, getFont, getFormat, getFrame, getFrameHeight, getFrameMaxX, getFrameMaxY, getFrameWidth, getFrameX, getFrameXY, getFrameY, getHeight, getHover, getLayoutInfo, getMaskPath, getMaxX, getMaxY, getMinHeight, getMinHeight, getMinWidth, getMinWidth, getName, getOpacity, getOpacityDeep, getOutline, getPageBreak, getPageBreakMax, getPageBreakPage, getPageBreakPageMax, getPageShape, getParent, getParent, getPath, getPathInBounds, getPrefHeight, getPrefHeight, getPrefWidth, getPrefWidth, getPropertyNameMapped, getPropertyNames, getPropertyNames, getRoll, getRootShape, getRSS, getScaleX, getScaleY, getShapesToAncestor, getShapesToDescendant, getShapesToShape, getSize, getSkewX, getSkewY, getStroke, getStrokeColor, getStrokeStyle, getStrokeWidth, getTextColor, getTimeline, getTimeline, getTransform, getTransformFromShape, getTransformInverse, getTransformToShape, getUndoer, getURL, getVisbileBounds, getVisibleBounds, getVisibleBounds, getVisibleBounds, getWidth, getX, getXY, getXYP, getY, height, indexOf, intersects, isAncestor, isAnimProperty, isDeletable, isDescendant, isEditing, isEnabled, isFontSet, isHittable, isLocked, isMinHeightSet, isMinWidthSet, isPrefHeightSet, isPrefWidthSet, isRoot, isRSS, isShowing, isUnderlined, isUseFill, isUseStroke, isViewing, isVisible, mouseClicked, mouseDragged, mouseEntered, mouseExited, mouseMoved, mousePressed, mouseReleased, offsetXY, page, pageMax, paint, paintShapeAll, paintShapeChildren, put, removeBinding, removeBinding, removeDeepChangeListener, removeFromParent, removeMouseListener, repaint, repaint, resolvePageReferences, rpgBindings, rpgShape, setAlignment, setAlignmentX, setAlignmentY, setAutosizing, setBestHeight, setBestSize, setBounds, setBounds, setColor, setDashArrayString, setDashPhase, setEffect, setEnabled, setFill, setFont, setFormat, setFrame, setFrame, setFrameSize, setFrameX, setFrameXY, setFrameXY, setFrameY, setHover, setLayoutInfo, setLocked, setMinHeight, setMinSize, setMinWidth, setName, setOpacity, setOutline, setParent, setPrefHeight, setPrefWidth, setRoll, setScaleX, setScaleXY, setScaleY, setShowing, setSize, setSize, setSkewX, setSkewXY, setSkewY, setStroke, setStrokeColor, setStrokeStyle, setStrokeWidth, setTextColor, setTime, setTimeline, setUnderlined, setURL, setUseFill, setUseStroke, setVisible, setX, setXY, setXY, setXYP, setY, shapeHidden, shapeShown, superSelectable, 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 Detail
-
DEFAULT_TABLE_DATAKEY
public static final java.lang.String DEFAULT_TABLE_DATAKEY
- See Also:
- Constant Field Values
-
-
Method Detail
-
selfInit
public void selfInit()
- Specified by:
selfInitin interfaceRMShapeSelfInit
-
getDatasetKey
public java.lang.String getDatasetKey()
Returns the dataset key associated with the table.- Overrides:
getDatasetKeyin classRMShape
-
setDatasetKey
public void setDatasetKey(java.lang.String aKeyPath)
Sets the dataset key associated with the table.
-
getFilterKey
public java.lang.String getFilterKey()
Returns the optional key chain expression string used to prune the table list derived from dataset key.
-
setFilterKey
public void setFilterKey(java.lang.String aKeyExpr)
Sets the optional key chain expression string used to prune the table list derived from dataset key.
-
getGrouper
public RMGrouper getGrouper()
Returns the grouper associated with the table.
-
setGrouper
public void setGrouper(RMGrouper aGrouper)
Sets the grouper associated with the table.
-
getGroupingCount
public int getGroupingCount()
Returns the number of groups in this table.
-
getGrouping
public RMGrouping getGrouping(int anIndex)
Returns the individual grouping at the given index.
-
getGrouping
public RMGrouping getGrouping(java.lang.String aKey)
Returns the individual grouping that has the same key as the one given.
-
getGrouping
public RMGrouping getGrouping(java.lang.String aKey, boolean doCreate, int anIndex)
Returns the individual grouping that has the same key as the one given, with option to create at index if missing.
-
addGroupingKey
public void addGroupingKey(java.lang.String aKey, int anIndex)Adds a grouping to the table for the given key string at the given grouping index.
-
addGrouping
public void addGrouping(RMGrouping aGrouping, int anIndex)
Adds a given grouping to the table at the given grouping index.
-
removeGrouping
public void removeGrouping(RMGrouping aGrouping)
Removes the given grouping.
-
moveGrouping
public void moveGrouping(int fromIndex, int toIndex)Moves the grouping at the first index so that it resides at the second index.
-
addHeader
public RMTableRow addHeader(java.lang.String aKey)
Convenience to add header for grouping key.
-
addDetails
public RMTableRow addDetails(java.lang.String aKey)
Convenience to add details for grouping key.
-
addSummary
public RMTableRow addSummary(java.lang.String aKey)
Convenience to add summary for grouping key.
-
propertyChange
public void propertyChange(java.beans.PropertyChangeEvent anEvent)
Override to update rows when grouper changes and revalidate when child height changes.- Specified by:
propertyChangein interfacejava.beans.PropertyChangeListener- Overrides:
propertyChangein classRMShape
-
grouperChanged
protected void grouperChanged()
Called when there is a grouper change to ensure that table rows match groupings.
-
getPageBreakGroupIndex
public int getPageBreakGroupIndex()
Returns the index of the grouping in the grouper at which an explicit.
-
setPageBreakGroupIndex
public void setPageBreakGroupIndex(int aValue)
Returns the index of the grouping in the grouper at which an explicit.
-
getStartingPageBreak
public boolean getStartingPageBreak()
Returns whether this table should always start on a new page (if in table group).
-
getStartingRowPageBreak
public boolean getStartingRowPageBreak()
Returns whether each row should always start on a new page (if in a table group).
-
setStartingPageBreak
public void setStartingPageBreak(boolean aFlag)
Sets whether this table should always start on a new page (if in table group).
-
setStartingRowPageBreak
public void setStartingRowPageBreak(boolean aFlag)
Sets whether this table's rows should always start on a new page (if in table group).
-
getColumnCount
public int getColumnCount()
Returns the number of columns that this table should be repeated over on the same page before paginating.
-
setColumnCount
public void setColumnCount(int aValue)
Sets the number of columns that this table should be repeated over on the same page before paginating.
-
getColumnSpacing
public double getColumnSpacing()
Returns the space between a table that has more than one column (int printer points).
-
setColumnSpacing
public void setColumnSpacing(double aValue)
Sets the space between a table that has more than one column (int printer points).
-
getRow
public RMTableRow getRow(int anIndex)
Returns the specific table row at the given index.
-
getRow
public RMTableRow getRow(java.lang.String aName)
Returns the specific table row with the given name.
-
getChildWithTitle
public RMShape getChildWithTitle(java.lang.String aTitle)
Returns a specific child with the given name.
-
setTitleForChild
public void setTitleForChild(java.lang.String aNm1, java.lang.String aNm2)Sets title for child of given name to new name.
-
addChildWithTitle
public void addChildWithTitle(RMTableRow aChild, int anIndex, java.lang.String aTitle)
Convenience to set a child title and add to the table.
-
getResizeBarBounds
public RMRect getResizeBarBounds(int anIndex)
Returns the bounds rect of the resize bar for the child at the given index.
-
getResizeBarAtPoint
public int getResizeBarAtPoint(RMPoint aPoint)
Returns the index of the resize bar that is hit by the given point.
-
childrenSuperSelectImmediately
public boolean childrenSuperSelectImmediately()
Editor method - indicates that children should super select immediately when split shape is super selected.- Overrides:
childrenSuperSelectImmediatelyin classRMShape
-
layoutChildren
protected void layoutChildren()
Performs layout.- Overrides:
layoutChildrenin classRMParentShape
-
rpgAll
public RMShape rpgAll(ReportOwner anOwner, RMShape aParent)
Report generation for table.- Overrides:
rpgAllin classRMParentShape
-
paintShape
public void paintShape(RMShapePainter aPntr)
Paints a table shape.- Overrides:
paintShapein classRMShape
-
paintShapeOver
public void paintShapeOver(RMShapePainter aPntr)
Paints stroke around table after all children have drawn.- Overrides:
paintShapeOverin classRMShape
-
getStrokeOnTop
public boolean getStrokeOnTop()
Override to paint table stroke on top.- Overrides:
getStrokeOnTopin classRMShape
-
clone
@Nullable public RMTable clone()
Standard clone implementation.- Overrides:
clonein classRMParentShape
-
toXMLShape
protected RXElement toXMLShape(RXArchiver anArchiver)
XML archival.- Overrides:
toXMLShapein classRMParentShape
-
fromXMLShape
protected void fromXMLShape(RXArchiver anArchiver, RXElement anElement)
XML unarchival.- Overrides:
fromXMLShapein classRMParentShape
-
fromXMLChildren
protected void fromXMLChildren(RXArchiver anArchiver, RXElement anElement)
XML unarchival for shape children.- Overrides:
fromXMLChildrenin classRMParentShape
-
-