Class FlexUtil
java.lang.Object
com.itextpdf.layout.renderer.FlexUtil
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final floatprivate static final floatprivate static final floatprivate static final org.slf4j.Logger -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static voidapplyAlignContent(List<List<FlexUtil.FlexItemCalculationInfo>> lines, AlignContentPropertyValue alignContent, float freeSpace, boolean isColumnDirection) private static voidapplyAlignContent(List<List<FlexUtil.FlexItemCalculationInfo>> lines, FlexContainerRenderer renderer, Float crossSize, Rectangle layoutBox) private static voidapplyAlignItemsAndAlignSelf(List<List<FlexUtil.FlexItemCalculationInfo>> lines, FlexContainerRenderer renderer, List<Float> lineCrossSizes) private static voidapplyCentralAlignment(List<List<FlexUtil.FlexItemCalculationInfo>> lines, float freeSpace, boolean isColumnDirection) private static voidapplyFlexEndAlignment(List<List<FlexUtil.FlexItemCalculationInfo>> lines, float freeSpace, boolean isColumnDirection) private static voidapplyJustifyContent(List<List<FlexUtil.FlexItemCalculationInfo>> lines, FlexContainerRenderer renderer, float mainSize, float containerMainSize) private static voidapplySpaceAroundAlignment(List<List<FlexUtil.FlexItemCalculationInfo>> lines, float freeSpace, boolean isColumnDirection) private static voidapplySpaceBetweenAlignment(List<List<FlexUtil.FlexItemCalculationInfo>> lines, float freeSpace, boolean isColumnDirection) private static voidapplySpaceEvenlyAlignment(List<List<FlexUtil.FlexItemCalculationInfo>> lines, float freeSpace, boolean isColumnDirection) 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 floatcalculateFreeSpace(List<FlexUtil.FlexItemCalculationInfo> line, float initialFreeSpace) private static floatcalculateHeight(AbstractRenderer flexItemRenderer, float width) private static floatcalculateMaxMainSize(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 voiddetermineFlexBasisAndHypotheticalMainSizeForFlexItems(List<FlexUtil.FlexItemCalculationInfo> flexItemCalculationInfos, float crossSize, boolean isColumnDirection) private static voiddetermineHypotheticalCrossSizeForFlexItem(FlexUtil.FlexItemCalculationInfo info, boolean isColumnDirection, float crossSize) (package private) static voiddetermineHypotheticalCrossSizeForFlexItems(List<List<FlexUtil.FlexItemCalculationInfo>> lines, boolean isColumnDirection, float crossSize) (package private) static voiddetermineUsedCrossSizeOfEachFlexItem(List<List<FlexUtil.FlexItemCalculationInfo>> lines, List<Float> lineCrossSizes, FlexContainerRenderer flexContainerRenderer) private static Float[]getCrossSizes(FlexContainerRenderer renderer, Rectangle layoutBox) private static float(package private) static floatgetMainSize(FlexContainerRenderer renderer, Rectangle layoutBox) (package private) static voidhandleAlignContentStretch(FlexContainerRenderer flexContainerRenderer, List<List<FlexUtil.FlexItemCalculationInfo>> lines, Float crossSize, List<Float> lineCrossSizes, Rectangle layoutBox) private static boolean(package private) static booleanisColumnDirection(FlexContainerRenderer renderer) (package private) static booleanisZero(float value) (package private) static voidresolveFlexibleLengths(List<List<FlexUtil.FlexItemCalculationInfo>> lines, float mainSize) private static voidresolveFlexibleLengths(List<List<FlexUtil.FlexItemCalculationInfo>> lines, float layoutBoxSize, float containerSize) private static FloatresolveUnitValue(FlexContainerRenderer renderer, int property, float baseValue) retrieveCurrentPageLineCrossSizes(FlexContainerRenderer flexContainerRenderer, List<List<FlexUtil.FlexItemCalculationInfo>> lines, List<Float> lineCrossSizes, Float crossSize, Rectangle layoutBox) private static Floatprivate 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
-
applyAlignContent
private static void applyAlignContent(List<List<FlexUtil.FlexItemCalculationInfo>> lines, FlexContainerRenderer renderer, Float crossSize, Rectangle layoutBox) -
applyAlignContent
private static void applyAlignContent(List<List<FlexUtil.FlexItemCalculationInfo>> lines, AlignContentPropertyValue alignContent, float freeSpace, boolean isColumnDirection) -
applyFlexEndAlignment
private static void applyFlexEndAlignment(List<List<FlexUtil.FlexItemCalculationInfo>> lines, float freeSpace, boolean isColumnDirection) -
applySpaceBetweenAlignment
private static void applySpaceBetweenAlignment(List<List<FlexUtil.FlexItemCalculationInfo>> lines, float freeSpace, boolean isColumnDirection) -
applySpaceEvenlyAlignment
private static void applySpaceEvenlyAlignment(List<List<FlexUtil.FlexItemCalculationInfo>> lines, float freeSpace, boolean isColumnDirection) -
applySpaceAroundAlignment
private static void applySpaceAroundAlignment(List<List<FlexUtil.FlexItemCalculationInfo>> lines, float freeSpace, boolean isColumnDirection) -
applyCentralAlignment
private static void applyCentralAlignment(List<List<FlexUtil.FlexItemCalculationInfo>> lines, float freeSpace, boolean isColumnDirection) -
getItemMaxCrossSize
-
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
-