pjfanning commented on code in PR #843:
URL: https://github.com/apache/poi/pull/843#discussion_r2205179305


##########
poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFTable.java:
##########
@@ -306,6 +306,80 @@ public int getNumberOfRows() {
         return ctTbl.sizeOfTrArray();
     }
 
+    /**
+     * Get the indentation value in 20ths of a point (twips).
+     *
+     * <p>This element specifies the indentation which shall be added before 
the leading edge of
+     * the current table in the document (the left edge in a left-to-right 
table, and the right
+     * edge in a right-to-left table).</p>
+     * <p>If the table alignment is not left/start, this property shall be 
ignored.</p>
+     *
+     * @see boolean isSetIndent()
+     * @return indentation value as an integer (20ths of a point)
+     */
+    public int getIndent() {
+        CTTblPr tblPr = getTblPr();
+        if (tblPr.isSetTblInd()) {
+            STTblWidth.Enum typeValue = tblPr.getTblInd().getType();
+            if (typeValue == null) {
+                // "§17.4.87: If [type] is omitted, then its value shall be 
assumed to be dxa"
+                typeValue = STTblWidth.DXA;
+            }
+            switch (typeValue.intValue()) {
+                case STTblWidth.INT_DXA:
+                    return (int) 
Units.toDXA(POIXMLUnits.parseLength(tblPr.getTblInd().xgetW()));
+                case STTblWidth.INT_NIL:
+                    // "§17.18.90: [nil] Specifies that the current width is 
zero, regardless of
+                    // any width value specified on the parent element"
+                    return 0;
+                case STTblWidth.INT_PCT:
+                case STTblWidth.INT_AUTO:
+                    // "§17.4.50: Any width value of type pct or auto for this 
element shall be ignored"
+                    return 0;
+            }
+        }
+        return 0;
+    }
+
+    /**
+     * Set the indentation in 20ths of a point (twips).
+     * @see int getIndent()
+     * @param indent Indentation value (20ths of a point)
+     */
+    public void setIndent(int indent) {
+        CTTblPr tblPr = getTblPr();
+        CTTblWidth tblInd = tblPr.isSetTblInd() ? tblPr.getTblInd() : 
tblPr.addNewTblInd();
+        tblInd.setW(new BigInteger(Integer.toString(indent)));
+        tblInd.setType(STTblWidth.DXA);
+    }
+
+    /**
+     * Check if some indentation value is set for the table.
+     *
+     * <p>If this attribute is omitted, then the table shall inherit the table 
indentation from
+     * the associated table style. If table indentation is never specified in 
the style hierarchy,
+     * no indentation shall be added to the parent table.</p>
+     *
+     * @return true if the indent value is set and is valid, false if it is 
not set or shall be
+     * ignored (e.g. due to invalid type).
+     */
+    public boolean isSetIndent() {

Review Comment:
   hasIndent?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@poi.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@poi.apache.org
For additional commands, e-mail: dev-h...@poi.apache.org

Reply via email to