From 6653bd01af2a696ccacd77859a15ada2fcfa624f Mon Sep 17 00:00:00 2001 From: Eliot Kimber Date: Mon, 30 Jul 2018 16:08:10 -0500 Subject: [PATCH] Added get/set for mirror margins setting Added get and set for even-and-odd headings setting. --- .../poi/xwpf/usermodel/XWPFDocument.java | 35 +++++++++++++++ .../poi/xwpf/usermodel/XWPFSettings.java | 44 +++++++++++++++++++ .../poi/xwpf/usermodel/TestXWPFDocument.java | 16 +++++++ 3 files changed, 95 insertions(+) diff --git a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java index fa252662b85..e11388a13f0 100644 --- a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java +++ b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java @@ -1338,6 +1338,40 @@ public void setZoomPercent(long zoomPercent) { settings.setZoomPercent(zoomPercent); } + /** + * Returns the even-and-odd-headings setting + * + * @return True or false indicating whether or not separate even and odd headings is turned on. + */ + public boolean getEvenAndOddHeadings() { + return settings.getEvenAndOddHeadings(); + } + + /** + * Sets the even-and-odd-headings setting + * @param enable Set to true to turn on separate even and odd headings. + */ + public void setEvenAndOddHeadings(boolean enable) { + settings.setEvenAndOddHeadings(enable); + } + + /** + * Returns the mirror margins setting + * + * @return True or false indicating whether or not mirror margins is turned on. + */ + public boolean getMirrorMargins() { + return settings.getMirrorMargins(); + } + + /** + * Sets the mirror margins setting + * @param enable Set to true to turn on mirror margins. + */ + public void setMirrorMargins(boolean enable) { + settings.setMirrorMargins(enable); + } + /** * inserts an existing XWPFTable to the arrays bodyElements and tables * @@ -1758,4 +1792,5 @@ public boolean removeEndnote(int pos) { return false; } } + } diff --git a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFSettings.java b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFSettings.java index a37e68b6878..f40e283968a 100644 --- a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFSettings.java +++ b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFSettings.java @@ -430,4 +430,48 @@ private void readFrom(InputStream inputStream) { throw new RuntimeException(e); } } + + /** + * Check if separate even and odd headings is turned on. + * + * @return True if even and odd headings is turned on. + */ + public boolean getEvenAndOddHeadings() { + return ctSettings.isSetEvenAndOddHeaders(); + } + + /** + * Turn separate even-and-odd headings on or off + * + * @param enable true to turn on separate even and odd headings, + * false to turn off even and odd headings. + */ + public void setEvenAndOddHeadings(boolean enable) { + CTOnOff onOff = CTOnOff.Factory.newInstance(); + onOff.setVal(enable ? STOnOff.TRUE : STOnOff.FALSE); + ctSettings.setEvenAndOddHeaders(onOff); + } + + /** + * Check if mirrored margins is turned on + * + * @return True if mirrored margins is turned on. + */ + public boolean getMirrorMargins() { + return ctSettings.isSetMirrorMargins(); + } + + /** + * Turn mirrored margins on or off + * + * @param enable true to turn on mirrored margins, + * false to turn off mirrored marginss. + */ + public void setMirrorMargins(boolean enable) { + CTOnOff onOff = CTOnOff.Factory.newInstance(); + onOff.setVal(enable ? STOnOff.TRUE : STOnOff.FALSE); + ctSettings.setMirrorMargins(onOff); + } + + } diff --git a/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFDocument.java b/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFDocument.java index 36757ff6ad4..15611bcf4bd 100644 --- a/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFDocument.java +++ b/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFDocument.java @@ -402,6 +402,14 @@ public void testSettings() throws IOException { assertEquals(100, settings.getZoomPercent()); settings.setZoomPercent(50); assertEquals(50, settings.getZoomPercent()); + + assertEquals(false, settings.getEvenAndOddHeadings()); + settings.setEvenAndOddHeadings(true); + assertEquals(true, settings.getEvenAndOddHeadings()); + + assertEquals(false, settings.getMirrorMargins()); + settings.setMirrorMargins(true); + assertEquals(true, settings.getMirrorMargins()); XWPFDocument doc = new XWPFDocument(); assertEquals(100, doc.getZoomPercent()); @@ -412,6 +420,14 @@ public void testSettings() throws IOException { doc.setZoomPercent(200); assertEquals(200, doc.getZoomPercent()); + assertEquals(false, doc.getEvenAndOddHeadings()); + doc.setEvenAndOddHeadings(true); + assertEquals(true, doc.getEvenAndOddHeadings()); + + assertEquals(false, doc.getMirrorMargins()); + doc.setMirrorMargins(true); + assertEquals(true, doc.getMirrorMargins()); + XWPFDocument back = XWPFTestDataSamples.writeOutAndReadBack(doc); assertEquals(200, back.getZoomPercent()); back.close();