Package com.itextpdf.layout.renderer
Class GridTrackSizer
- java.lang.Object
-
- com.itextpdf.layout.renderer.GridTrackSizer
-
class GridTrackSizer extends java.lang.ObjectClass representing a track sizing algorithm.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classGridTrackSizer.CompareTracksByGrowthPotentialprivate static classGridTrackSizer.ExtraSpaceShareFunctionParamsprivate static classGridTrackSizer.GridItemContributionType(package private) static classGridTrackSizer.Track(package private) static classGridTrackSizer.TrackSizingResult
-
Field Summary
Fields Modifier and Type Field Description private floatavailableSpaceprivate floatgapprivate Gridgridprivate Grid.GridOrderorderprivate java.util.Set<java.lang.Integer>percentValueIndexesprivate java.util.List<GridTrackSizer.Track>tracks
-
Constructor Summary
Constructors Constructor Description GridTrackSizer(Grid grid, java.util.List<GridValue> values, float gap, float availableSpace, Grid.GridOrder order)Create a track sizing algorithm for given template.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static floataffectedSizeForContribution(GridTrackSizer.Track track, GridTrackSizer.GridItemContributionType contributionType)private floatcalculateMinMaxContribution(GridCell cell, boolean minTypeContribution)Calculate min or max contribution of a cell.private floatdetermineFreeSpace()private voiddistributeExtraSpaceToTracks(float extraSpace, float flexFactorSum, GridTrackSizer.GridItemContributionType contributionType, java.util.List<GridTrackSizer.Track> tracksToGrow, java.util.List<GridTrackSizer.Track> tracksToGrowBeyondLimits, boolean isEqualDistribution)private voidexpandFlexibleTracks()private static floatextraSpaceShare(GridTrackSizer.Track track, float growthPotential, boolean isEqualDistribution, GridTrackSizer.ExtraSpaceShareFunctionParams changedParams)private floatfindFrSize(java.util.List<GridTrackSizer.Track> affectedTracks, float leftoverSpace)private java.util.List<GridTrackSizer.Track>getSpannedTracks(GridCell cell)private static voidgrowAffectedSizeByPlannedIncrease(GridTrackSizer.Track track, GridTrackSizer.GridItemContributionType contributionType)private floatgrowthPotentialForSet(GridTrackSizer.Track track, GridTrackSizer.GridItemContributionType contributionType, boolean ignoreInfinitelyGrowable)private voidincreaseTrackSizesToAccommodateGridItems(java.util.List<GridCell> group, boolean isGroupSpanningFlexTrack, GridTrackSizer.GridItemContributionType contributionType)private voidinitializeTrackSizes()private static booleanisContributionAppliedToTrack(GridTrackSizer.Track track, GridTrackSizer.GridItemContributionType contributionType)private static booleanisDistributionForGrowthLimits(GridTrackSizer.GridItemContributionType contributionType)private voidmaximizeTracks()private voidresolveIntrinsicTrackSizes()private static booleanshouldUsedSizeGrowBeyondLimit(GridTrackSizer.Track track, GridTrackSizer.GridItemContributionType contributionType)(package private) GridTrackSizer.TrackSizingResultsizeTracks()Resolves template values and auto-values to point values.private voidstretchAutoTracks()
-
-
-
Field Detail
-
grid
private final Grid grid
-
tracks
private final java.util.List<GridTrackSizer.Track> tracks
-
gap
private final float gap
-
availableSpace
private final float availableSpace
-
order
private final Grid.GridOrder order
-
percentValueIndexes
private final java.util.Set<java.lang.Integer> percentValueIndexes
-
-
Constructor Detail
-
GridTrackSizer
GridTrackSizer(Grid grid, java.util.List<GridValue> values, float gap, float availableSpace, Grid.GridOrder order)
Create a track sizing algorithm for given template.- Parameters:
grid- grid to processvalues- template valuesgap- gap between tracksavailableSpace- space to fit tracks onorder- grid order
-
-
Method Detail
-
sizeTracks
GridTrackSizer.TrackSizingResult sizeTracks()
Resolves template values and auto-values to point values.- Returns:
- list of points, representing track sizes with expanded percentages in case of inline calculation.
-
stretchAutoTracks
private void stretchAutoTracks()
-
maximizeTracks
private void maximizeTracks()
-
expandFlexibleTracks
private void expandFlexibleTracks()
-
getSpannedTracks
private java.util.List<GridTrackSizer.Track> getSpannedTracks(GridCell cell)
-
determineFreeSpace
private float determineFreeSpace()
-
findFrSize
private float findFrSize(java.util.List<GridTrackSizer.Track> affectedTracks, float leftoverSpace)
-
resolveIntrinsicTrackSizes
private void resolveIntrinsicTrackSizes()
-
increaseTrackSizesToAccommodateGridItems
private void increaseTrackSizesToAccommodateGridItems(java.util.List<GridCell> group, boolean isGroupSpanningFlexTrack, GridTrackSizer.GridItemContributionType contributionType)
-
growAffectedSizeByPlannedIncrease
private static void growAffectedSizeByPlannedIncrease(GridTrackSizer.Track track, GridTrackSizer.GridItemContributionType contributionType)
-
distributeExtraSpaceToTracks
private void distributeExtraSpaceToTracks(float extraSpace, float flexFactorSum, GridTrackSizer.GridItemContributionType contributionType, java.util.List<GridTrackSizer.Track> tracksToGrow, java.util.List<GridTrackSizer.Track> tracksToGrowBeyondLimits, boolean isEqualDistribution)
-
extraSpaceShare
private static float extraSpaceShare(GridTrackSizer.Track track, float growthPotential, boolean isEqualDistribution, GridTrackSizer.ExtraSpaceShareFunctionParams changedParams)
-
isDistributionForGrowthLimits
private static boolean isDistributionForGrowthLimits(GridTrackSizer.GridItemContributionType contributionType)
-
growthPotentialForSet
private float growthPotentialForSet(GridTrackSizer.Track track, GridTrackSizer.GridItemContributionType contributionType, boolean ignoreInfinitelyGrowable)
-
shouldUsedSizeGrowBeyondLimit
private static boolean shouldUsedSizeGrowBeyondLimit(GridTrackSizer.Track track, GridTrackSizer.GridItemContributionType contributionType)
-
isContributionAppliedToTrack
private static boolean isContributionAppliedToTrack(GridTrackSizer.Track track, GridTrackSizer.GridItemContributionType contributionType)
-
affectedSizeForContribution
private static float affectedSizeForContribution(GridTrackSizer.Track track, GridTrackSizer.GridItemContributionType contributionType)
-
initializeTrackSizes
private void initializeTrackSizes()
-
calculateMinMaxContribution
private float calculateMinMaxContribution(GridCell cell, boolean minTypeContribution)
Calculate min or max contribution of a cell.- Parameters:
cell- cell to calculate contributionminTypeContribution- type of contribution: min if true, max otherwise- Returns:
- contribution value
-
-