Skip to content

Commit 06ceef3

Browse files
author
Eugene Bochilo
committed
Add message logging for not supported flex-related properties
DEVSIX-5170
1 parent 3b40eca commit 06ceef3

File tree

240 files changed

+180
-124
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

240 files changed

+180
-124
lines changed

layout/src/main/java/com/itextpdf/layout/property/JustifyContent.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,6 @@ public enum JustifyContent {
3535
FLEX_END,
3636
LEFT,
3737
RIGHT,
38-
NORMAL
38+
NORMAL,
39+
STRETCH
3940
}

layout/src/main/java/com/itextpdf/layout/renderer/FlexUtil.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -525,17 +525,17 @@ private static void applyAlignItemsAndAlignSelf(List<List<FlexItemCalculationInf
525525
float freeSpace = lineCrossSize - itemInfo.getOuterCrossSize(itemInfo.crossSize);
526526

527527
switch (selfAlignment) {
528+
case SELF_END:
529+
case END:
528530
case FLEX_END:
529531
itemInfo.yShift = freeSpace;
530532
break;
531533
case CENTER:
532534
itemInfo.yShift = freeSpace / 2;
533535
break;
534-
case END:
535536
case START:
536537
case BASELINE:
537538
case SELF_START:
538-
case SELF_END:
539539
case STRETCH:
540540
case NORMAL:
541541
case FLEX_START:
@@ -559,17 +559,20 @@ private static void applyJustifyContent(List<List<FlexItemCalculationInfo>> line
559559
float freeSpace = mainSize - childrenWidth;
560560

561561
switch (justifyContent) {
562+
case RIGHT:
563+
case END:
564+
case SELF_END:
562565
case FLEX_END:
563566
line.get(0).xShift = freeSpace;
564567
break;
565568
case CENTER:
566569
line.get(0).xShift = freeSpace / 2;
567570
break;
568571
case NORMAL:
572+
case STRETCH:
569573
case START:
570-
case END:
571-
case RIGHT:
572574
case LEFT:
575+
case SELF_START:
573576
case FLEX_START:
574577
default:
575578
// We don't need to do anything in these cases

layout/src/test/java/com/itextpdf/layout/element/FlexContainerTest.java

Lines changed: 63 additions & 58 deletions
Large diffs are not rendered by default.

layout/src/test/java/com/itextpdf/layout/renderer/FlexUtilTest.java

Lines changed: 73 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -568,7 +568,7 @@ public void ltWidthGrow0Shrink1Item2MarginBorderPadding30Test01() {
568568
}
569569

570570
@Test
571-
public void ltWidthGrow0Shrink1Item2MarginBorderPadding30JustifyContentCenterAlignItemsCenterTest01() {
571+
public void ltWidthGrow0Shrink1Item2MBP30JustifyContentCenterTest() {
572572
Rectangle bBox = new Rectangle(575, 842);
573573
List<UnitValue> flexBasisValues = Arrays.<UnitValue>asList(
574574
UnitValue.createPointValue(50f),
@@ -623,77 +623,91 @@ public void ltWidthGrow0Shrink1Item2MarginBorderPadding30JustifyContentCenterAli
623623
}
624624

625625
@Test
626-
public void ltWidthGrow0Shrink1Item2MarginBorderPadding30JustifyContentFlexEndAlignItemsFlexEndTest01() {
627-
Rectangle bBox = new Rectangle(575, 842);
628-
List<UnitValue> flexBasisValues = Arrays.<UnitValue>asList(
629-
UnitValue.createPointValue(50f),
630-
UnitValue.createPointValue(50f),
631-
UnitValue.createPointValue(50f)
632-
);
626+
public void ltWidthGrow0Shrink1Item2MBP30JustifyContentFlexStartTest() {
627+
JustifyContent[] justifyContentValues = {
628+
JustifyContent.NORMAL,
629+
JustifyContent.START,
630+
JustifyContent.STRETCH,
631+
JustifyContent.LEFT,
632+
JustifyContent.SELF_START,
633+
JustifyContent.FLEX_START
634+
};
635+
AlignmentPropertyValue[] alignItemsValues = {
636+
AlignmentPropertyValue.START,
637+
AlignmentPropertyValue.SELF_START,
638+
AlignmentPropertyValue.BASELINE,
639+
AlignmentPropertyValue.SELF_START,
640+
AlignmentPropertyValue.FLEX_START,
641+
AlignmentPropertyValue.FLEX_START
642+
};
643+
for (int j = 0; j < justifyContentValues.length; ++j) {
644+
Rectangle bBox = new Rectangle(575, 842);
645+
List<UnitValue> flexBasisValues = Arrays.<UnitValue>asList(
646+
UnitValue.createPointValue(50f),
647+
UnitValue.createPointValue(50f),
648+
UnitValue.createPointValue(50f)
649+
);
633650

634-
Div div = new Div().setWidth(200).setHeight(300);
651+
Div div = new Div().setWidth(200).setHeight(300);
635652

636-
DocumentRenderer documentRenderer = new DocumentRenderer(
637-
new Document(new PdfDocument(new PdfWriter(new ByteArrayOutputStream()))));
653+
DocumentRenderer documentRenderer = new DocumentRenderer(
654+
new Document(new PdfDocument(new PdfWriter(new ByteArrayOutputStream()))));
638655

639-
FlexContainerRenderer flexContainerRenderer = new FlexContainerRenderer(div);
640-
flexContainerRenderer.setParent(documentRenderer);
641-
flexContainerRenderer.setProperty(Property.FLEX_WRAP, FlexWrapPropertyValue.WRAP);
642-
flexContainerRenderer.setProperty(Property.JUSTIFY_CONTENT, JustifyContent.FLEX_END);
643-
flexContainerRenderer.setProperty(Property.ALIGN_ITEMS, AlignmentPropertyValue.FLEX_END);
644-
div.setNextRenderer(flexContainerRenderer);
656+
FlexContainerRenderer flexContainerRenderer = new FlexContainerRenderer(div);
657+
flexContainerRenderer.setParent(documentRenderer);
658+
flexContainerRenderer.setProperty(Property.FLEX_WRAP, FlexWrapPropertyValue.WRAP);
659+
flexContainerRenderer.setProperty(Property.JUSTIFY_CONTENT, justifyContentValues[j]);
660+
flexContainerRenderer.setProperty(Property.ALIGN_ITEMS, alignItemsValues[j]);
661+
div.setNextRenderer(flexContainerRenderer);
645662

646-
for (int i = 0; i < flexBasisValues.size(); i++) {
647-
Div flexItem = new Div().add(new Paragraph("x"));
648-
if (1 == i) {
649-
flexItem.setMargin(10).setBorder(new SolidBorder(15)).setPadding(5);
650-
flexItem.setHeight(50);
663+
for (int i = 0; i < flexBasisValues.size(); i++) {
664+
Div flexItem = new Div().add(new Paragraph("x"));
665+
if (1 == i) {
666+
flexItem.setMargin(10).setBorder(new SolidBorder(15)).setPadding(5);
667+
flexItem.setHeight(50);
668+
}
669+
AbstractRenderer flexItemRenderer = (AbstractRenderer) flexItem.createRendererSubTree()
670+
.setParent(documentRenderer);
671+
flexItemRenderer.setProperty(Property.FLEX_GROW, 0f);
672+
flexItemRenderer.setProperty(Property.FLEX_SHRINK, 1f);
673+
flexItemRenderer.setProperty(Property.FLEX_BASIS, flexBasisValues.get(i));
674+
flexContainerRenderer.addChild(flexItemRenderer);
651675
}
652-
AbstractRenderer flexItemRenderer = (AbstractRenderer) flexItem.createRendererSubTree()
653-
.setParent(documentRenderer);
654-
flexItemRenderer.setProperty(Property.FLEX_GROW, 0f);
655-
flexItemRenderer.setProperty(Property.FLEX_SHRINK, 1f);
656-
flexItemRenderer.setProperty(Property.FLEX_BASIS, flexBasisValues.get(i));
657-
flexContainerRenderer.addChild(flexItemRenderer);
658-
}
659676

660-
List<List<FlexItemInfo>> rectangleTable =
661-
FlexUtil.calculateChildrenRectangles(bBox, (FlexContainerRenderer) div.getRenderer());
677+
List<List<FlexItemInfo>> rectangleTable =
678+
FlexUtil.calculateChildrenRectangles(bBox, (FlexContainerRenderer) div.getRenderer());
662679

663-
Assert.assertEquals(25.9375f, rectangleTable.get(0).get(0).getRectangle().getHeight(), EPS);
664-
Assert.assertEquals(110.0f, rectangleTable.get(0).get(1).getRectangle().getHeight(), EPS);
665-
Assert.assertEquals(25.9375f, rectangleTable.get(1).get(0).getRectangle().getHeight(), EPS);
680+
Assert.assertEquals(25.9375f, rectangleTable.get(0).get(0).getRectangle().getHeight(), EPS);
681+
Assert.assertEquals(110.0f, rectangleTable.get(0).get(1).getRectangle().getHeight(), EPS);
682+
Assert.assertEquals(25.9375f, rectangleTable.get(1).get(0).getRectangle().getHeight(), EPS);
666683

667-
Assert.assertEquals(50.0f, rectangleTable.get(0).get(0).getRectangle().getWidth(), EPS);
668-
Assert.assertEquals(110.0f, rectangleTable.get(0).get(1).getRectangle().getWidth(), EPS);
669-
Assert.assertEquals(50.0f, rectangleTable.get(1).get(0).getRectangle().getWidth(), EPS);
684+
Assert.assertEquals(50.0f, rectangleTable.get(0).get(0).getRectangle().getWidth(), EPS);
685+
Assert.assertEquals(110.0f, rectangleTable.get(0).get(1).getRectangle().getWidth(), EPS);
686+
Assert.assertEquals(50.0f, rectangleTable.get(1).get(0).getRectangle().getWidth(), EPS);
670687

671-
Assert.assertEquals(40.0f, rectangleTable.get(0).get(0).getRectangle().getX(), EPS);
672-
Assert.assertEquals(0f, rectangleTable.get(0).get(1).getRectangle().getX(), EPS);
673-
Assert.assertEquals(150.0f, rectangleTable.get(1).get(0).getRectangle().getX(), EPS);
688+
Assert.assertEquals(0f, rectangleTable.get(0).get(0).getRectangle().getX(), EPS);
689+
Assert.assertEquals(0f, rectangleTable.get(0).get(1).getRectangle().getX(), EPS);
690+
Assert.assertEquals(0f, rectangleTable.get(1).get(0).getRectangle().getX(), EPS);
674691

675-
Assert.assertEquals(166.09375f, rectangleTable.get(0).get(0).getRectangle().getY(), EPS);
676-
Assert.assertEquals(82.03125f, rectangleTable.get(0).get(1).getRectangle().getY(), EPS);
677-
Assert.assertEquals(82.03125f, rectangleTable.get(1).get(0).getRectangle().getY(), EPS);
692+
Assert.assertEquals(0f, rectangleTable.get(0).get(0).getRectangle().getY(), EPS);
693+
Assert.assertEquals(0f, rectangleTable.get(0).get(1).getRectangle().getY(), EPS);
694+
Assert.assertEquals(0f, rectangleTable.get(1).get(0).getRectangle().getY(), EPS);
695+
}
678696
}
679697

680698
@Test
681-
public void ltWidthGrow0Shrink1Item2MarginBorderPadding30JustifyContentFlexStartAndNotValidAlignItemsFlexStartAndNotValidTest01() {
699+
public void ltWidthGrow0Shrink1Item2MBP30JustifyContentFlexEndTest() {
682700
JustifyContent[] justifyContentValues = {
683-
JustifyContent.NORMAL,
684-
JustifyContent.START,
685701
JustifyContent.END,
686-
JustifyContent.LEFT,
687702
JustifyContent.RIGHT,
688-
JustifyContent.FLEX_START
703+
JustifyContent.SELF_END,
704+
JustifyContent.FLEX_END
689705
};
690706
AlignmentPropertyValue[] alignItemsValues = {
691-
AlignmentPropertyValue.START,
692707
AlignmentPropertyValue.END,
693-
AlignmentPropertyValue.SELF_START,
694708
AlignmentPropertyValue.SELF_END,
695-
AlignmentPropertyValue.BASELINE,
696-
AlignmentPropertyValue.FLEX_START
709+
AlignmentPropertyValue.FLEX_END,
710+
AlignmentPropertyValue.FLEX_END
697711
};
698712
for (int j = 0; j < justifyContentValues.length; ++j) {
699713
Rectangle bBox = new Rectangle(575, 842);
@@ -740,18 +754,18 @@ public void ltWidthGrow0Shrink1Item2MarginBorderPadding30JustifyContentFlexStart
740754
Assert.assertEquals(110.0f, rectangleTable.get(0).get(1).getRectangle().getWidth(), EPS);
741755
Assert.assertEquals(50.0f, rectangleTable.get(1).get(0).getRectangle().getWidth(), EPS);
742756

743-
Assert.assertEquals(0f, rectangleTable.get(0).get(0).getRectangle().getX(), EPS);
757+
Assert.assertEquals(40.0f, rectangleTable.get(0).get(0).getRectangle().getX(), EPS);
744758
Assert.assertEquals(0f, rectangleTable.get(0).get(1).getRectangle().getX(), EPS);
745-
Assert.assertEquals(0f, rectangleTable.get(1).get(0).getRectangle().getX(), EPS);
759+
Assert.assertEquals(150.0f, rectangleTable.get(1).get(0).getRectangle().getX(), EPS);
746760

747-
Assert.assertEquals(0f, rectangleTable.get(0).get(0).getRectangle().getY(), EPS);
748-
Assert.assertEquals(0f, rectangleTable.get(0).get(1).getRectangle().getY(), EPS);
749-
Assert.assertEquals(0f, rectangleTable.get(1).get(0).getRectangle().getY(), EPS);
761+
Assert.assertEquals(166.09375f, rectangleTable.get(0).get(0).getRectangle().getY(), EPS);
762+
Assert.assertEquals(82.03125f, rectangleTable.get(0).get(1).getRectangle().getY(), EPS);
763+
Assert.assertEquals(82.03125f, rectangleTable.get(1).get(0).getRectangle().getY(), EPS);
750764
}
751765
}
752766

753767
@Test
754-
public void ltWidthGrow0Shrink1Item2MarginBorderPadding30AlignItemsStretchAndNormalTest01() {
768+
public void ltWidthGrow0Shrink1Item2MBP30AlignItemsStretchTest() {
755769
AlignmentPropertyValue[] alignItemsValues = {
756770
AlignmentPropertyValue.STRETCH,
757771
AlignmentPropertyValue.NORMAL
@@ -811,7 +825,7 @@ public void ltWidthGrow0Shrink1Item2MarginBorderPadding30AlignItemsStretchAndNor
811825
}
812826

813827
@Test
814-
public void ltWidthGrow0Shrink0Item2MarginBorderPadding30JustifyContentCenterAlignItemsCenterDontFitTest01() {
828+
public void ltWidthGrow0Shrink1Item2MBP30JustifyContentCenterDontFitTest() {
815829
Rectangle bBox = new Rectangle(575, 842);
816830
List<UnitValue> flexBasisValues = Arrays.<UnitValue>asList(
817831
UnitValue.createPointValue(100f),

0 commit comments

Comments
 (0)