]> source.dussan.org Git - poi.git/commitdiff
Improve support, tests and documentation for xssf headers and footers
authorNick Burch <nick@apache.org>
Tue, 5 Aug 2008 10:22:13 +0000 (10:22 +0000)
committerNick Burch <nick@apache.org>
Tue, 5 Aug 2008 10:22:13 +0000 (10:22 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/branches/ooxml@682662 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/interfaces-jdk15/org/apache/poi/ss/usermodel/Sheet.java
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFEvenFooter.java
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFEvenHeader.java
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFFirstFooter.java
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFFirstHeader.java
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFOddFooter.java
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFOddHeader.java
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java

index e9fd943ba8c4ccca3a0db3e42225a48b75801afb..055f8452d840776d9cdb540cbd48a228b228b73f 100644 (file)
@@ -392,13 +392,17 @@ public interface Sheet extends Iterable<Row> {
     PrintSetup getPrintSetup();
 
     /**
-     * Gets the user model for the document header.
+     * Gets the user model for the default document header.
+     * Note that XSSF offers more kinds of document
+     *  headers than HSSF does
      * @return The Document header.
      */
     Header getHeader();
 
     /**
-     * Gets the user model for the document footer.
+     * Gets the user model for the default document footer.
+     * Note that XSSF offers more kinds of document
+     *  footers than HSSF does.
      * @return The Document footer.
      */
     Footer getFooter();
index a215285a21e4168749c9005d7c900cdaabbce61b..759b3e4d264b86e408b4fdc6864d6ca8d582f428 100644 (file)
@@ -32,7 +32,11 @@ public class XSSFEvenFooter extends XSSFHeaderFooter implements Footer{
     }
     
     public void setText(String text) {
-        getHeaderFooter().setEvenFooter(text);
+       if(text == null) {
+               getHeaderFooter().unsetEvenFooter();
+       } else {
+               getHeaderFooter().setEvenFooter(text);
+       }
     }
 
 }
index 670b498012c6f222177610186c8e083f813d02a1..0a63110ba06e321a0f5cc1c93accb9040ca55649 100644 (file)
@@ -32,7 +32,11 @@ public class XSSFEvenHeader extends XSSFHeaderFooter implements Header{
     }
     
     public void setText(String text) {
-        getHeaderFooter().setEvenHeader(text);
+       if(text == null) {
+               getHeaderFooter().unsetEvenHeader();
+       } else {
+               getHeaderFooter().setEvenHeader(text);
+       }
     }
 
 }
index e9a1f3776470c51d0cfc81579deecdc44e2ea83d..7d2df77d75626e36a680fe84f2aed3d5e451db53 100644 (file)
@@ -32,7 +32,10 @@ public class XSSFFirstFooter extends XSSFHeaderFooter implements Footer{
     }
     
     public void setText(String text) {
-        getHeaderFooter().setFirstFooter(text);
+       if(text == null) {
+               getHeaderFooter().unsetFirstFooter();
+       } else {
+               getHeaderFooter().setFirstFooter(text);
+       }
     }
-
 }
index 17e5a70861c8c0498618b6ecfdbfef9ca6d7ecfc..27a7520d423e3218e91414809fab161c628c8883 100644 (file)
@@ -32,7 +32,11 @@ public class XSSFFirstHeader extends XSSFHeaderFooter implements Header{
     }
     
     public void setText(String text) {
-        getHeaderFooter().setFirstHeader(text);
+       if(text == null) {
+               getHeaderFooter().unsetFirstHeader();
+       } else {
+               getHeaderFooter().setFirstHeader(text);
+       }
     }
 
 }
index 709212ef8d45600184ff6ba31321c3914df325ba..8e3143b0d1e27ff80ca8f2350bd5f0349daaa928 100644 (file)
@@ -32,7 +32,10 @@ public class XSSFOddFooter extends XSSFHeaderFooter implements Footer{
     }
     
     public void setText(String text) {
-        getHeaderFooter().setOddFooter(text);
+       if(text == null) {
+               getHeaderFooter().unsetOddFooter();
+       } else {
+               getHeaderFooter().setOddFooter(text);
+       }
     }
-
 }
index e03a6491f03bbcfa071206bd8a87fa3206c6a6e5..5ee37cc00a9c14481224a43c88fd5155b930f4df 100644 (file)
@@ -32,7 +32,10 @@ public class XSSFOddHeader extends XSSFHeaderFooter implements Header{
     }
     
     public void setText(String text) {
-        getHeaderFooter().setOddHeader(text);
+       if(text == null) {
+               getHeaderFooter().unsetOddHeader();
+       } else {
+               getHeaderFooter().setOddHeader(text);
+       }
     }
-
 }
index 18c0e8f16129bd72b5541937539dab21a87e67bb..a76711a7f32c90545b5fc9ac38d911a96bb3dbdc 100644 (file)
@@ -381,14 +381,7 @@ public class XSSFSheet implements Sheet {
         return getSheetTypePageSetUpPr().getFitToPage();
     }
 
-    public Footer getFooter() {
-        return getOddFooter();
-    }
     
-    public Footer getOddFooter() {
-        return new XSSFOddFooter(getSheetTypeHeaderFooter());
-    }
-
        protected CTHeaderFooter getSheetTypeHeaderFooter() {
                if (worksheet.getHeaderFooter() == null) {
                        worksheet.setHeaderFooter(CTHeaderFooter.Factory.newInstance());
@@ -396,31 +389,80 @@ public class XSSFSheet implements Sheet {
                return worksheet.getHeaderFooter();
        }
     
+    /**
+     * Returns the default footer for the sheet,
+     *  creating one as needed.
+     * You may also want to look at 
+     *  {@link #getFirstFooter()},
+     *  {@link #getOddFooter()} and
+     *  {@link #getEvenFooter()}
+     */
+    public Footer getFooter() {
+       // The default footer is an odd footer
+        return getOddFooter();
+    }
+
+    /**
+     * Returns the default header for the sheet,
+     *  creating one as needed.
+     * You may also want to look at
+     *  {@link #getFirstHeader()},
+     *  {@link #getOddHeader()} and
+     *  {@link #getEvenHeader()}
+     */
+    public Header getHeader() {
+       // The default header is an odd header
+        return getOddHeader();
+    }
+    
+    /**
+     * Returns the odd footer. Used on all pages unless
+     *  other footers also present, when used on only
+     *  odd pages.
+     */
+    public Footer getOddFooter() {
+        return new XSSFOddFooter(getSheetTypeHeaderFooter());
+    }
+    /**
+     * Returns the even footer. Not there by default, but
+     *  when set, used on even pages. 
+     */
     public Footer getEvenFooter() {
         return new XSSFEvenFooter(getSheetTypeHeaderFooter());
     }
-    
+    /**
+     * Returns the first page footer. Not there by
+     *  default, but when set, used on the first page.
+     */
     public Footer getFirstFooter() {
         return new XSSFFirstFooter(getSheetTypeHeaderFooter());
     }
 
-    public Header getHeader() {
-        return getOddHeader();
-    }
-    
+    /**
+     * Returns the odd header. Used on all pages unless
+     *  other headers also present, when used on only
+     *  odd pages.
+     */
     public Header getOddHeader() {
         return new XSSFOddHeader(getSheetTypeHeaderFooter());
     }
-    
+    /**
+     * Returns the even header. Not there by default, but
+     *  when set, used on even pages. 
+     */
     public Header getEvenHeader() {
         return new XSSFEvenHeader(getSheetTypeHeaderFooter()
 );
     }
-    
+    /**
+     * Returns the first page header. Not there by
+     *  default, but when set, used on the first page.
+     */
     public Header getFirstHeader() {
         return new XSSFFirstHeader(getSheetTypeHeaderFooter());
     }
 
+    
     public boolean getHorizontallyCenter() {
        return getSheetTypePrintOptions().getHorizontalCentered();
     }
index c709d81be31c2482af71035804ab384f33d859ac..ad8dfc9aeee5a3382d9d6950052f1abf37e60602 100644 (file)
@@ -281,10 +281,14 @@ public class TestXSSFSheet extends TestCase {
     
     public void testGetFooter() {
         XSSFWorkbook workbook = new XSSFWorkbook();
-        Sheet sheet = workbook.createSheet("Sheet 1");
+        XSSFSheet sheet = (XSSFSheet)workbook.createSheet("Sheet 1");
         assertNotNull(sheet.getFooter());
         sheet.getFooter().setCenter("test center footer");
         assertEquals("test center footer", sheet.getFooter().getCenter());
+        
+        // Default is odd footer
+        assertNotNull(sheet.getOddFooter());
+        assertEquals("test center footer", sheet.getOddFooter().getCenter());
     }
     
     public void testGetAllHeadersFooters() {
@@ -321,6 +325,9 @@ public class TestXSSFSheet extends TestCase {
         sheet.getOddHeader().setCenter("odd header center");
         assertEquals("odd header center", sheet.getOddHeader().getCenter());
 
+        // Defaults are odd
+        assertEquals("odd footer left", sheet.getFooter().getLeft());
+        assertEquals("odd header center", sheet.getHeader().getCenter());
     }
     
     public void testGetSetColumnWidth() {