Package com.itextpdf.layout.renderer
Class GridTrackSizer
- java.lang.Object
-
- com.itextpdf.layout.renderer.GridTrackSizer
-
class GridTrackSizer extends java.lang.Object
Class representing a track sizing algorithm.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
GridTrackSizer.CompareTracksByGrowthPotential
private static class
GridTrackSizer.ExtraSpaceShareFunctionParams
private static class
GridTrackSizer.GridItemContributionType
(package private) static class
GridTrackSizer.Track
(package private) static class
GridTrackSizer.TrackSizingResult
-
Field Summary
Fields Modifier and Type Field Description private float
availableSpace
private float
gap
private Grid
grid
private Grid.GridOrder
order
private java.util.Set<java.lang.Integer>
percentValueIndexes
private 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 float
affectedSizeForContribution(GridTrackSizer.Track track, GridTrackSizer.GridItemContributionType contributionType)
private float
calculateMinMaxContribution(GridCell cell, boolean minTypeContribution)
Calculate min or max contribution of a cell.private float
determineFreeSpace()
private void
distributeExtraSpaceToTracks(float extraSpace, float flexFactorSum, GridTrackSizer.GridItemContributionType contributionType, java.util.List<GridTrackSizer.Track> tracksToGrow, java.util.List<GridTrackSizer.Track> tracksToGrowBeyondLimits, boolean isEqualDistribution)
private void
expandFlexibleTracks()
private static float
extraSpaceShare(GridTrackSizer.Track track, float growthPotential, boolean isEqualDistribution, GridTrackSizer.ExtraSpaceShareFunctionParams changedParams)
private float
findFrSize(java.util.List<GridTrackSizer.Track> affectedTracks, float leftoverSpace)
private java.util.List<GridTrackSizer.Track>
getSpannedTracks(GridCell cell)
private static void
growAffectedSizeByPlannedIncrease(GridTrackSizer.Track track, GridTrackSizer.GridItemContributionType contributionType)
private float
growthPotentialForSet(GridTrackSizer.Track track, GridTrackSizer.GridItemContributionType contributionType, boolean ignoreInfinitelyGrowable)
private void
increaseTrackSizesToAccommodateGridItems(java.util.List<GridCell> group, boolean isGroupSpanningFlexTrack, GridTrackSizer.GridItemContributionType contributionType)
private void
initializeTrackSizes()
private static boolean
isContributionAppliedToTrack(GridTrackSizer.Track track, GridTrackSizer.GridItemContributionType contributionType)
private static boolean
isDistributionForGrowthLimits(GridTrackSizer.GridItemContributionType contributionType)
private void
maximizeTracks()
private void
resolveIntrinsicTrackSizes()
private static boolean
shouldUsedSizeGrowBeyondLimit(GridTrackSizer.Track track, GridTrackSizer.GridItemContributionType contributionType)
(package private) GridTrackSizer.TrackSizingResult
sizeTracks()
Resolves template values and auto-values to point values.private void
stretchAutoTracks()
-
-
-
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
-
-