Class RMTableRPGX
- All Implemented Interfaces:
RMArchiver.Archiving
,Cloneable
Whereas the superclass had the luxury of simple breadth first iteration over the group tree, this class must do a much more complicated depth transversal, so it can remove rows in the reverse order they were added.
-
Field Summary
Fields inherited from class com.reportmill.shape.RMShape
WRAP_TYPE_BOTH, WRAP_TYPE_NONE
-
Constructor Summary
ConstructorsConstructorDescriptionCreates an empty TableRPGX to be used as a container for a page of filled table rows.RMTableRPGX
(RMTableGroup aTableGroup, RMTable aTable, ReportMill aReportMill) Creates a TableRPGX and starts the RPG process with the given TableGroup or Table. -
Method Summary
Modifier and TypeMethodDescriptionboolean
addDetails
(RMGroup aGroup, int stayWith) In theory, this method just adds a details row for the given group and then hands off to addHeader for sub-group addition.boolean
In theory, this method just adds a header row for the given group and then hands off to addDetails for it's first subgroup.boolean
addRow
(RMTableRowRPG aRow) Adds the given table row RPG to this table RPG (just below the last child).boolean
addSummary
(RMGroup aGroup, int detailIndex) In theory, this method just adds a summary row for the given group and then hands off to addDetails for aGroup's next peer.void
This is a top level method to fill rows in the current page and kick off a new page if it ends prematurly.boolean
This method adds a given table (or sub-table) to the current page.splitRow
(RMTableRowRPG aRow) Splits the given row at the point that it overlaps its next neighbor or row bottom.Methods inherited from class com.reportmill.shape.RMTableRPG
addGroup, addTable, getFilteredList, getHeightToFit, getNextPage, getNextPageX, getPage, getPageCount, getPageLast, getPageLastX, getPaginate, getTableRow, makeColumns, moveRowsToBottom, rpgClonePreprocess
Methods inherited from class com.reportmill.shape.RMShape
acceptsChildren, acceptsDragKeys, acceptsFormat, acceptsMouse, addChild, addChild, addChildBelowLastChild, bounds, boundsChanged, boundsChanged, bringShapesToFront, canBeUngrouped, childrenSuperSelectImmediately, clone, cloneDeep, contains, convertedPointFromShape, convertedPointToShape, convertedRectFromShape, convertedRectToShape, convertedSizeFromShape, convertedSizeToShape, convertedVectorFromShape, convertedVectorToShape, convertFromShape, convertPathFromShape, convertPathToShape, convertPointFromShape, convertPointToShape, convertRectFromShape, convertRectToShape, convertSizeFromShape, convertSizeToShape, convertToShape, convertVectorFromShape, convertVectorToShape, copy, copyShape, delete, didChange, divideShapeFromEdge, divideShapeFromTop, dragExit, dragKeyAtPoint, dropKeyAtPoint, equals, fromXML, fromXMLDeep, get, getActionScript, getAnim, getAnim, getAnimator, getAnimator, getAutosizeHeight, getAutosizing, getBounds, getBoundsInside, getBoundsMarked, getBoundsOfChildren, getBoundsOfChildren, getBoundsSuperSelected, getCausesWrap, getCausesWrapType, getChild, getChildAnimator, getChildAnimator, getChildContaining, getChildCount, getChildLast, getChildren, getChildrenIntersecting, getChildrenWhoCauseWrap, getChildrenWhoDraw, getChildrenWhoHitTest, getChildSortedByX, getChildWithClass, getChildWithName, getColor, getCommonAncestor, getDocument, getFill, getFill, getFill, getFillCount, getFills, getFont, getFormat, getFrame, getFrame, getFrameMaxX, getFrameMaxY, getFrameX, getFrameXY, getFrameY, getGroupShape, getHeight, getImageFill, getLineWidth, getListKey, getListKeyDeep, getListKeyShape, getMaxX, getMaxY, getName, getOpacity, getOpacityDeep, getOutline, getPageShape, getParent, getParentCount, getParents, getPath, getPathInBounds, getPropertyKey, getPropertyKeyCount, getPropertyKeyName, getRoll, getRootShape, getScaleX, getScaleY, getShapesToAncestor, getShapesToDescendant, getShapesToShape, getSize, getSizeP, getSkewX, getSkewY, getStroke, getStrokeColor, getTextColor, getToolClassName, getTransform, getTransformFromShape, getTransformInverse, getTransformToShape, getUndoer, getUrl, getWidth, getWidthToFit, getX, getXY, getXYP, getY, groupShapes, hasPageBreaks, height, indexOf, indexOf, initWithArchiver, intersects, isAncestor, isDescendant, isLocked, isRoot, isUnderlined, mouseDragged, mouseEntered, mouseExited, mouseMoved, mousePressed, mouseReleased, notRSS, offsetChildrenXY, offsetXY, page, pageBreakMax, pageBreakPageMax, pageMax, put, putPropertyKey, reclaimChildren, removeChild, removeChild, removeChildren, removeChildren, removeFromParent, resolvePageReferences, rpgClone, rpgCloneBase, rpgCloneChildren, rpgCloneConclude, rpgCloneNotification, rpgClonePrepare, rpgClonePreprocess, rpgCloneUrl, sendShapesToBack, setActionScript, setAnim, setAutosizeHeight, setAutosizing, setBounds, setBounds, setCausesWrapType, setChildren, setColor, setFill, setFont, setFormat, setFrame, setFrame, setFrameSize, setFrameX, setFrameXY, setFrameXY, setFrameY, setHeight, setHeightDeep, setHeightDeep, setHeightToFit, setLineWidth, setListKey, setLocked, setName, setNeedsRepaint, setNeedsRepaint, setOpacity, setOutline, setParent, setRoll, setScaleX, setScaleXY, setScaleY, setSize, setSize, setSizeDeep, setSizeP, setSizeToFit, setSizeToFit, setSkewX, setSkewXY, setSkewY, setStroke, setStrokeColor, setTextColor, setTime, setUnderlined, setUrl, setWidth, setWidthDeep, setWidthDeep, setWidthToFit, setX, setXY, setXY, setXYP, setY, sizesToFitChildren, superSelectable, toString, toXML, undoClone, undoCopy, undoEquals, undoerAddDirtyObject, undoerDisable, undoerEnable, undoerSetUndoTitle, width, willChange, willChange, x, y
Methods inherited from class com.reportmill.base.RMObject
didUndo, getAnimAttribute, getClassNameShort
-
Constructor Details
-
RMTableRPGX
public RMTableRPGX()Creates an empty TableRPGX to be used as a container for a page of filled table rows. -
RMTableRPGX
Creates a TableRPGX and starts the RPG process with the given TableGroup or Table.
-
-
Method Details
-
addTable
This is a top level method to fill rows in the current page and kick off a new page if it ends prematurly. -
addTable
This method adds a given table (or sub-table) to the current page. -
addHeader
In theory, this method just adds a header row for the given group and then hands off to addDetails for it's first subgroup. If we successfully add a header row, we return true.However, if the given group isEmpty, we simply progress to addSummary.
Additionally, if there is an existing _starupGroup, we print a "Reprint" header and we derive a specific subgroup for our addDetails hand off (the specific subgroup that is a parent of _startupGroup).
-
addDetails
In theory, this method just adds a details row for the given group and then hands off to addHeader for sub-group addition. If we successfully add a details row, we returns true.However, if aGroup isLeaf we try to either addTable for a child table (if present) or addDetails for the next details (if present) or addSummary for parent (if aGroup truly is the last of it's line).
Additionally, if we failed to add a child group, a child table or a next group, we check our stayWith constraints and either remove ourselves or try to addSummary(s) for running summaries.
One final wrinkle - we may actually only add a portion of the details row for this group. If that happens, we try to addSummary for upper groups (for running summaries).
-
addSummary
In theory, this method just adds a summary row for the given group and then hands off to addDetails for aGroup's next peer. If we successfully add a summary row, we returns true. -
addRow
Description copied from class:RMTableRPG
Adds the given table row RPG to this table RPG (just below the last child).- Overrides:
addRow
in classRMTableRPG
-
splitRow
Splits the given row at the point that it overlaps its next neighbor or row bottom.
-