Package com.itextpdf.layout.renderer
Class FlexUtil
java.lang.Object
com.itextpdf.layout.renderer.FlexUtil
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final float
private static final float
private static final float
private static final org.slf4j.Logger
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static void
applyAlignItemsAndAlignSelf
(List<List<FlexUtil.FlexItemCalculationInfo>> lines, FlexContainerRenderer renderer, List<Float> lineCrossSizes) private static void
applyJustifyContent
(List<List<FlexUtil.FlexItemCalculationInfo>> lines, FlexContainerRenderer renderer, float mainSize, float containerMainSize) static List
<List<FlexItemInfo>> calculateChildrenRectangles
(Rectangle flexContainerBBox, FlexContainerRenderer flexContainerRenderer) Performs flex layout algorithm.calculateCrossSizeOfEachFlexLine
(List<List<FlexUtil.FlexItemCalculationInfo>> lines, Float minCrossSize, Float crossSize, Float maxCrossSize) private static float
calculateFreeSpace
(List<FlexUtil.FlexItemCalculationInfo> line, float initialFreeSpace) private static float
calculateHeight
(AbstractRenderer flexItemRenderer, float width) private static float
calculateMaxMainSize
(AbstractRenderer flexItemRenderer, float flexContainerMainSize, boolean isColumnDirection, float crossSize) (package private) static List
<List<FlexUtil.FlexItemCalculationInfo>> collectFlexItemsIntoFlexLines
(List<FlexUtil.FlexItemCalculationInfo> flexItemCalculationInfos, float mainSize, boolean isSingleLine) private static List
<FlexUtil.FlexItemCalculationInfo> createFlexItemCalculationInfos
(FlexContainerRenderer flexContainerRenderer, float flexContainerMainSize, float crossSize) (package private) static void
determineFlexBasisAndHypotheticalMainSizeForFlexItems
(List<FlexUtil.FlexItemCalculationInfo> flexItemCalculationInfos, float crossSize, boolean isColumnDirection) private static void
determineHypotheticalCrossSizeForFlexItem
(FlexUtil.FlexItemCalculationInfo info, boolean isColumnDirection, float crossSize) (package private) static void
determineHypotheticalCrossSizeForFlexItems
(List<List<FlexUtil.FlexItemCalculationInfo>> lines, boolean isColumnDirection, float crossSize) (package private) static void
determineUsedCrossSizeOfEachFlexItem
(List<List<FlexUtil.FlexItemCalculationInfo>> lines, List<Float> lineCrossSizes, FlexContainerRenderer flexContainerRenderer) private static Float[]
getCrossSizes
(FlexContainerRenderer renderer, Rectangle layoutBox) (package private) static float
getMainSize
(FlexContainerRenderer renderer, Rectangle layoutBox) (package private) static void
handleAlignContentStretch
(FlexContainerRenderer flexContainerRenderer, List<List<FlexUtil.FlexItemCalculationInfo>> lines, Float crossSize, List<Float> lineCrossSizes, Rectangle layoutBox) private static boolean
(package private) static boolean
isColumnDirection
(FlexContainerRenderer renderer) (package private) static boolean
isZero
(float value) (package private) static void
resolveFlexibleLengths
(List<List<FlexUtil.FlexItemCalculationInfo>> lines, float mainSize) private static void
resolveFlexibleLengths
(List<List<FlexUtil.FlexItemCalculationInfo>> lines, float layoutBoxSize, float containerSize) private static Float
resolveUnitValue
(FlexContainerRenderer renderer, int property, float baseValue) retrieveCurrentPageLineCrossSizes
(FlexContainerRenderer flexContainerRenderer, List<List<FlexUtil.FlexItemCalculationInfo>> lines, List<Float> lineCrossSizes, Float crossSize, Rectangle layoutBox) private static Float
private static Float
-
Field Details
-
EPSILON
private static final float EPSILON- See Also:
-
FLEX_GROW_INITIAL_VALUE
private static final float FLEX_GROW_INITIAL_VALUE- See Also:
-
FLEX_SHRINK_INITIAL_VALUE
private static final float FLEX_SHRINK_INITIAL_VALUE- See Also:
-
logger
private static final org.slf4j.Logger logger
-
-
Constructor Details
-
FlexUtil
private FlexUtil()
-
-
Method Details
-
calculateChildrenRectangles
public static List<List<FlexItemInfo>> calculateChildrenRectangles(Rectangle flexContainerBBox, FlexContainerRenderer flexContainerRenderer) Performs flex layout algorithm.The algorithm could be found here:
- Parameters:
flexContainerBBox
- bounding box in which flex container should be renderedflexContainerRenderer
- flex container's renderer- Returns:
- list of lines
-
isColumnDirection
-
getMainSize
-
resolveUnitValue
private static Float resolveUnitValue(FlexContainerRenderer renderer, int property, float baseValue) -
getCrossSizes
-
determineFlexBasisAndHypotheticalMainSizeForFlexItems
static void determineFlexBasisAndHypotheticalMainSizeForFlexItems(List<FlexUtil.FlexItemCalculationInfo> flexItemCalculationInfos, float crossSize, boolean isColumnDirection) -
collectFlexItemsIntoFlexLines
static List<List<FlexUtil.FlexItemCalculationInfo>> collectFlexItemsIntoFlexLines(List<FlexUtil.FlexItemCalculationInfo> flexItemCalculationInfos, float mainSize, boolean isSingleLine) -
resolveFlexibleLengths
static void resolveFlexibleLengths(List<List<FlexUtil.FlexItemCalculationInfo>> lines, float mainSize) -
resolveFlexibleLengths
private static void resolveFlexibleLengths(List<List<FlexUtil.FlexItemCalculationInfo>> lines, float layoutBoxSize, float containerSize) -
determineHypotheticalCrossSizeForFlexItems
static void determineHypotheticalCrossSizeForFlexItems(List<List<FlexUtil.FlexItemCalculationInfo>> lines, boolean isColumnDirection, float crossSize) -
determineHypotheticalCrossSizeForFlexItem
private static void determineHypotheticalCrossSizeForFlexItem(FlexUtil.FlexItemCalculationInfo info, boolean isColumnDirection, float crossSize) -
calculateColumnDirectionCrossSizes
-
calculateCrossSizeOfEachFlexLine
-
handleAlignContentStretch
static void handleAlignContentStretch(FlexContainerRenderer flexContainerRenderer, List<List<FlexUtil.FlexItemCalculationInfo>> lines, Float crossSize, List<Float> lineCrossSizes, Rectangle layoutBox) -
determineUsedCrossSizeOfEachFlexItem
static void determineUsedCrossSizeOfEachFlexItem(List<List<FlexUtil.FlexItemCalculationInfo>> lines, List<Float> lineCrossSizes, FlexContainerRenderer flexContainerRenderer) -
retrieveMaxHeightForMainDirection
-
retrieveMinHeightForMainDirection
-
applyAlignItemsAndAlignSelf
private static void applyAlignItemsAndAlignSelf(List<List<FlexUtil.FlexItemCalculationInfo>> lines, FlexContainerRenderer renderer, List<Float> lineCrossSizes) -
applyJustifyContent
private static void applyJustifyContent(List<List<FlexUtil.FlexItemCalculationInfo>> lines, FlexContainerRenderer renderer, float mainSize, float containerMainSize) -
calculateFreeSpace
private static float calculateFreeSpace(List<FlexUtil.FlexItemCalculationInfo> line, float initialFreeSpace) -
hasFlexibleItems
-
isZero
static boolean isZero(float value) -
createFlexItemCalculationInfos
private static List<FlexUtil.FlexItemCalculationInfo> createFlexItemCalculationInfos(FlexContainerRenderer flexContainerRenderer, float flexContainerMainSize, float crossSize) -
calculateMaxMainSize
private static float calculateMaxMainSize(AbstractRenderer flexItemRenderer, float flexContainerMainSize, boolean isColumnDirection, float crossSize) -
retrieveCurrentPageLineCrossSizes
private static List<Float> retrieveCurrentPageLineCrossSizes(FlexContainerRenderer flexContainerRenderer, List<List<FlexUtil.FlexItemCalculationInfo>> lines, List<Float> lineCrossSizes, Float crossSize, Rectangle layoutBox) -
calculateHeight
-