]> source.dussan.org Git - poi.git/commitdiff
[bug-66176] rework text box support
authorPJ Fanning <fanningpj@apache.org>
Wed, 27 Jul 2022 08:59:25 +0000 (08:59 +0000)
committerPJ Fanning <fanningpj@apache.org>
Wed, 27 Jul 2022 08:59:25 +0000 (08:59 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1903047 13f79535-47bb-0310-9956-ffa450edef68

poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFDiagram.java
poi-ooxml/src/test/java/org/apache/poi/xslf/usermodel/TestXSLFDiagram.java
poi/src/main/java/org/apache/poi/ss/formula/WorkbookEvaluator.java
poi/src/test/java/org/apache/poi/ss/formula/TestFormulaEval.java

index f1073e31ce439e206e649875da30db5f801a9d73..c63e6ca0ac00ea680bb1f44f1241ef89c5298a7a 100644 (file)
@@ -180,6 +180,7 @@ public class XSLFDiagram extends XSLFGraphicFrame {
         // If we shared the one object, a consumer may be surprised that updating the text shape properties
         // also updates the parent shape.
         textShapeCT.setNvSpPr((CTShapeNonVisual) nonVisualCt.copy());
+        textShapeCT.getNvSpPr().getCNvSpPr().setTxBox(true);
 
         return textShapeCT;
     }
index d8b1a655c9da67988c8f4dbc673f23ccffebffef..9552cfd656bd42eed49e48930853161ba02f7a44 100644 (file)
@@ -107,7 +107,7 @@ public class TestXSLFDiagram {
             assertTrue(yellowCircle.getText().isEmpty());
             assertEquals(accent4Hex, colorToHex(yellowCircle.getFillColor()));
 
-            XSLFAutoShape yellowCircleText = (XSLFAutoShape) shapes.get(1);
+            XSLFTextBox yellowCircleText = (XSLFTextBox) shapes.get(1);
             assertEquals(yellowCircleText.getText(), "abc");
             assertEquals(TextAlign.CENTER, yellowCircleText.getTextParagraphs().get(0).getTextAlign());
 
@@ -116,7 +116,7 @@ public class TestXSLFDiagram {
             assertTrue(gradientCircle.getFillPaint() instanceof PaintStyle.GradientPaint);
             assertTrue(gradientCircle.getText().isEmpty());
 
-            XSLFAutoShape gradientCircleText = (XSLFAutoShape) shapes.get(3);
+            XSLFTextBox gradientCircleText = (XSLFTextBox) shapes.get(3);
             assertEquals(gradientCircleText.getText(), "def");
             // Even with left justification, the text is rendered on the right side of the circle because SmartArt defines
             // a better visual placement for the textbox inside the txXfrm property.
@@ -138,7 +138,7 @@ public class TestXSLFDiagram {
             assertEquals(6405, greenCircleColorStyle.getLumOff());
             assertEquals(-27185, greenCircleColorStyle.getSatOff());
 
-            XSLFAutoShape greenCircleText = (XSLFAutoShape) shapes.get(5);
+            XSLFTextBox greenCircleText = (XSLFTextBox) shapes.get(5);
             assertEquals(greenCircleText.getText(), "ghi");
             assertEquals(TextAlign.RIGHT, greenCircleText.getTextParagraphs().get(0).getTextAlign());
 
index 2f49119033fcc4bcea3a724c9d37e9e425c2b22f..e6403ebaa858c24952decb786fd2209cfe24b266 100644 (file)
@@ -75,12 +75,12 @@ public final class WorkbookEvaluator {
     /**
      * whether print detailed messages about the next formula evaluation
      */
-    private boolean dbgEvaluationOutputForNextEval;
+    private boolean dbgEvaluationOutputForNextEval = true;
 
     // special logger for formula evaluation output (because of possibly very large output)
     private final Logger EVAL_LOG = LogManager.getLogger("POI.FormulaEval");
     // current indent level for evaluation; negative value for no output
-    private int dbgEvaluationOutputIndent = -1;
+    private int dbgEvaluationOutputIndent = 1;
 
     /**
      * @param udfFinder pass {@code null} for default (AnalysisToolPak only)
@@ -376,7 +376,7 @@ public final class WorkbookEvaluator {
         if (dbgEvaluationOutputForNextEval) {
             // first evaluation call when ouput is desired, so iit. this evaluator instance
             dbgEvaluationOutputIndent = 1;
-            dbgEvaluationOutputForNextEval = false;
+            //dbgEvaluationOutputForNextEval = true;
         }
         if (dbgEvaluationOutputIndent > 0) {
             // init. indent string to needed spaces (create as substring from very long space-only string;
index 8c390a0d3377f47b2ec6da2a7f68e260b66ede8f..f5d828389d57066857dc635ab9211277cba51754 100644 (file)
@@ -74,7 +74,7 @@ class TestFormulaEval {
         }
     }
 
-    @Disabled("currently causes a StackOverflowError")
+    //@Disabled("currently causes a StackOverflowError")
     @Test
     void testBug66152() throws IOException {
         try (HSSFWorkbook wb = new HSSFWorkbook()) {