aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/lowagie/text/rtf/headerfooter
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/lowagie/text/rtf/headerfooter')
-rw-r--r--src/main/java/com/lowagie/text/rtf/headerfooter/RtfHeaderFooter.java326
-rw-r--r--src/main/java/com/lowagie/text/rtf/headerfooter/RtfHeaderFooterGroup.java393
2 files changed, 719 insertions, 0 deletions
diff --git a/src/main/java/com/lowagie/text/rtf/headerfooter/RtfHeaderFooter.java b/src/main/java/com/lowagie/text/rtf/headerfooter/RtfHeaderFooter.java
new file mode 100644
index 0000000..d338f71
--- /dev/null
+++ b/src/main/java/com/lowagie/text/rtf/headerfooter/RtfHeaderFooter.java
@@ -0,0 +1,326 @@
+/*
+ * Created on Aug 10, 2004
+ *
+ * To change the template for this generated file go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+package com.lowagie.text.rtf.headerfooter;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+
+import com.lowagie.text.DocumentException;
+import com.lowagie.text.Element;
+import com.lowagie.text.HeaderFooter;
+import com.lowagie.text.Image;
+import com.lowagie.text.Paragraph;
+import com.lowagie.text.Phrase;
+import com.lowagie.text.Table;
+import com.lowagie.text.rtf.RtfBasicElement;
+import com.lowagie.text.rtf.document.RtfDocument;
+import com.lowagie.text.rtf.field.RtfPageNumber;
+
+
+/**
+ * The RtfHeaderFooter represents one header or footer. This class can be used
+ * directly.
+ *
+ * @version $Id: RtfHeaderFooter.java,v 1.9 2005/09/21 15:26:01 hallm Exp $
+ * @author Mark Hall (mhall@edu.uni-klu.ac.at)
+ */
+public class RtfHeaderFooter extends HeaderFooter implements RtfBasicElement {
+
+ /**
+ * Constant for the header type
+ */
+ public static final int TYPE_HEADER = 1;
+ /**
+ * Constant for the footer type
+ */
+ public static final int TYPE_FOOTER = 2;
+ /**
+ * Constant for displaying the header/footer on the first page
+ */
+ public static final int DISPLAY_FIRST_PAGE = 0;
+ /**
+ * Constant for displaying the header/footer on all pages
+ */
+ public static final int DISPLAY_ALL_PAGES = 1;
+ /**
+ * Constant for displaying the header/footer on all left hand pages
+ */
+ public static final int DISPLAY_LEFT_PAGES = 2;
+ /**
+ * Constant for displaying the header/footer on all right hand pages
+ */
+ public static final int DISPLAY_RIGHT_PAGES = 4;
+
+ /**
+ * Constant for a header on all pages
+ */
+ private static final byte[] HEADER_ALL = "\\header".getBytes();
+ /**
+ * Constant for a header on the first page
+ */
+ private static final byte[] HEADER_FIRST = "\\headerf".getBytes();
+ /**
+ * Constant for a header on all left hand pages
+ */
+ private static final byte[] HEADER_LEFT = "\\headerl".getBytes();
+ /**
+ * Constant for a header on all right hand pages
+ */
+ private static final byte[] HEADER_RIGHT = "\\headerr".getBytes();
+ /**
+ * Constant for a footer on all pages
+ */
+ private static final byte[] FOOTER_ALL = "\\footer".getBytes();
+ /**
+ * Constant for a footer on the first page
+ */
+ private static final byte[] FOOTER_FIRST = "\\footerf".getBytes();
+ /**
+ * Constnat for a footer on the left hand pages
+ */
+ private static final byte[] FOOTER_LEFT = "\\footerl".getBytes();
+ /**
+ * Constant for a footer on the right hand pages
+ */
+ private static final byte[] FOOTER_RIGHT = "\\footerr".getBytes();
+
+ /**
+ * The RtfDocument this RtfHeaderFooter belongs to
+ */
+ private RtfDocument document = null;
+ /**
+ * The content of this RtfHeaderFooter
+ */
+ private Object content = null;
+ /**
+ * The display type of this RtfHeaderFooter. TYPE_HEADER or TYPE_FOOTER
+ */
+ private int type = TYPE_HEADER;
+ /**
+ * The display location of this RtfHeaderFooter. DISPLAY_FIRST_PAGE,
+ * DISPLAY_LEFT_PAGES, DISPLAY_RIGHT_PAGES or DISPLAY_ALL_PAGES
+ */
+ private int displayAt = DISPLAY_ALL_PAGES;
+
+ /**
+ * Constructs a RtfHeaderFooter based on a HeaderFooter with a certain type and displayAt
+ * location. For internal use only.
+ *
+ * @param doc The RtfDocument this RtfHeaderFooter belongs to
+ * @param headerFooter The HeaderFooter to base this RtfHeaderFooter on
+ * @param type The type of RtfHeaderFooter
+ * @param displayAt The display location of this RtfHeaderFooter
+ */
+ protected RtfHeaderFooter(RtfDocument doc, HeaderFooter headerFooter, int type, int displayAt) {
+ super(new Phrase(""), false);
+ this.document = doc;
+ this.type = type;
+ this.displayAt = displayAt;
+ Paragraph par = new Paragraph();
+ par.setAlignment(headerFooter.alignment());
+ if (headerFooter.getBefore() != null) {
+ par.add(headerFooter.getBefore());
+ }
+ if (headerFooter.isNumbered()) {
+ par.add(new RtfPageNumber(this.document));
+ }
+ if (headerFooter.getAfter() != null) {
+ par.add(headerFooter.getAfter());
+ }
+ try {
+ if(this.document != null) {
+ content = this.document.getMapper().mapElement(par);
+ ((RtfBasicElement) this.content).setInHeader(true);
+ } else {
+ content = par;
+ }
+ } catch(DocumentException de) {
+ de.printStackTrace();
+ }
+ }
+
+ /**
+ * Constructs a RtfHeaderFooter as a copy of an existing RtfHeaderFooter.
+ * For internal use only.
+ *
+ * @param doc The RtfDocument this RtfHeaderFooter belongs to
+ * @param headerFooter The RtfHeaderFooter to copy
+ * @param displayAt The display location of this RtfHeaderFooter
+ */
+ protected RtfHeaderFooter(RtfDocument doc, RtfHeaderFooter headerFooter, int displayAt) {
+ super(new Phrase(""), false);
+ this.document = doc;
+ this.content = headerFooter.getContent();
+ this.displayAt = displayAt;
+ if(this.content instanceof Element) {
+ try {
+ this.content = this.document.getMapper().mapElement((Element) this.content);
+ } catch(DocumentException de) {
+ de.printStackTrace();
+ }
+ }
+ ((RtfBasicElement) this.content).setInHeader(true);
+ }
+
+ /**
+ * Constructs a RtfHeaderFooter for a HeaderFooter.
+ *
+ * @param doc The RtfDocument this RtfHeaderFooter belongs to
+ * @param headerFooter The HeaderFooter to base this RtfHeaderFooter on
+ */
+ protected RtfHeaderFooter(RtfDocument doc, HeaderFooter headerFooter) {
+ super(new Phrase(""), false);
+ this.document = doc;
+ Paragraph par = new Paragraph();
+ par.setAlignment(headerFooter.alignment());
+ if (headerFooter.getBefore() != null) {
+ par.add(headerFooter.getBefore());
+ }
+ if (headerFooter.isNumbered()) {
+ par.add(new RtfPageNumber(this.document));
+ }
+ if (headerFooter.getAfter() != null) {
+ par.add(headerFooter.getAfter());
+ }
+ try {
+ content = doc.getMapper().mapElement(par);
+ ((RtfBasicElement) this.content).setInHeader(true);
+ } catch(DocumentException de) {
+ de.printStackTrace();
+ }
+ }
+
+ /**
+ * Constructs a RtfHeaderFooter for any Element.
+ *
+ * @param element The Element to display as content of this RtfHeaderFooter
+ */
+ public RtfHeaderFooter(Element element) {
+ super(new Phrase(""), false);
+ this.content = element;
+ }
+
+ /**
+ * Sets the RtfDocument this RtfElement belongs to
+ *
+ * @param doc The RtfDocument to use
+ */
+ public void setRtfDocument(RtfDocument doc) {
+ this.document = doc;
+ if(this.document != null) {
+ try {
+ if(this.content instanceof Element) {
+ this.content = this.document.getMapper().mapElement((Element) this.content);
+ ((RtfBasicElement) this.content).setInHeader(true);
+ } else if(this.content instanceof RtfBasicElement){
+ ((RtfBasicElement) this.content).setRtfDocument(this.document);
+ ((RtfBasicElement) this.content).setInHeader(true);
+ }
+ } catch(DocumentException de) {
+ de.printStackTrace();
+ }
+ }
+ }
+
+ /**
+ * Writes the content of this RtfHeaderFooter
+ *
+ * @return A byte array with the content of this RtfHeaderFooter
+ */
+ public byte[] write() {
+ ByteArrayOutputStream result = new ByteArrayOutputStream();
+ try {
+ result.write(OPEN_GROUP);
+ if(this.type == TYPE_HEADER) {
+ if(this.displayAt == DISPLAY_ALL_PAGES) {
+ result.write(HEADER_ALL);
+ } else if(this.displayAt == DISPLAY_FIRST_PAGE) {
+ result.write(HEADER_FIRST);
+ } else if(this.displayAt == DISPLAY_LEFT_PAGES) {
+ result.write(HEADER_LEFT);
+ } else if(this.displayAt == DISPLAY_RIGHT_PAGES) {
+ result.write(HEADER_RIGHT);
+ }
+ } else {
+ if(this.displayAt == DISPLAY_ALL_PAGES) {
+ result.write(FOOTER_ALL);
+ } else if(this.displayAt == DISPLAY_FIRST_PAGE) {
+ result.write(FOOTER_FIRST);
+ } else if(this.displayAt == DISPLAY_LEFT_PAGES) {
+ result.write(FOOTER_LEFT);
+ } else if(this.displayAt == DISPLAY_RIGHT_PAGES) {
+ result.write(FOOTER_RIGHT);
+ }
+ }
+ result.write(DELIMITER);
+ if(content instanceof RtfBasicElement) {
+ result.write(((RtfBasicElement) this.content).write());
+ }
+ result.write(CLOSE_GROUP);
+ } catch(IOException ioe) {
+ ioe.printStackTrace();
+ }
+ return result.toByteArray();
+ }
+
+
+ /**
+ * Sets the display location of this RtfHeaderFooter
+ *
+ * @param displayAt The display location to use.
+ */
+ public void setDisplayAt(int displayAt) {
+ this.displayAt = displayAt;
+ }
+
+ /**
+ * Sets the type of this RtfHeaderFooter
+ *
+ * @param type The type to use.
+ */
+ public void setType(int type) {
+ this.type = type;
+ }
+
+ /**
+ * Gets the content of this RtfHeaderFooter
+ *
+ * @return The content of this RtfHeaderFooter
+ */
+ private Object getContent() {
+ return this.content;
+ }
+
+ /**
+ * Unused
+ * @param inTable
+ */
+ public void setInTable(boolean inTable) {
+ }
+
+ /**
+ * Unused
+ * @param inHeader
+ */
+ public void setInHeader(boolean inHeader) {
+ }
+
+ /**
+ * Set the alignment of this RtfHeaderFooter. Passes the setting
+ * on to the contained element.
+ */
+ public void setAlignment(int alignment) {
+ super.setAlignment(alignment);
+ if(this.content instanceof Paragraph) {
+ ((Paragraph) this.content).setAlignment(alignment);
+ } else if(this.content instanceof Table) {
+ ((Table) this.content).setAlignment(alignment);
+ } else if(this.content instanceof Image) {
+ ((Image) this.content).setAlignment(alignment);
+ }
+ }
+}
diff --git a/src/main/java/com/lowagie/text/rtf/headerfooter/RtfHeaderFooterGroup.java b/src/main/java/com/lowagie/text/rtf/headerfooter/RtfHeaderFooterGroup.java
new file mode 100644
index 0000000..e0934bf
--- /dev/null
+++ b/src/main/java/com/lowagie/text/rtf/headerfooter/RtfHeaderFooterGroup.java
@@ -0,0 +1,393 @@
+/*
+ * Created on Aug 6, 2004
+ *
+ * To change the template for this generated file go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+package com.lowagie.text.rtf.headerfooter;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+
+import com.lowagie.text.HeaderFooter;
+import com.lowagie.text.Phrase;
+import com.lowagie.text.rtf.RtfBasicElement;
+import com.lowagie.text.rtf.document.RtfDocument;
+
+
+/**
+ * The RtfHeaderFooterGroup holds 0 - 3 RtfHeaderFooters that create a group
+ * of headers or footers.
+ *
+ * @version $Version:$
+ * @author Mark Hall (mhall@edu.uni-klu.ac.at)
+ */
+public class RtfHeaderFooterGroup extends HeaderFooter implements RtfBasicElement {
+
+ /**
+ * This RtfHeaderFooterGroup contains no RtfHeaderFooter objects
+ */
+ private static final int MODE_NONE = 0;
+ /**
+ * This RtfHeaderFooterGroup contains one RtfHeaderFooter object
+ */
+ private static final int MODE_SINGLE = 1;
+ /**
+ * This RtfHeaderFooterGroup contains two or three RtfHeaderFooter objects
+ */
+ private static final int MODE_MULTIPLE = 2;
+
+ /**
+ * The current mode of this RtfHeaderFooterGroup. Defaults to MODE_NONE
+ */
+ private int mode = MODE_NONE;
+ /**
+ * The current type of this RtfHeaderFooterGroup. Defaults to RtfHeaderFooter.TYPE_HEADER
+ */
+ private int type = RtfHeaderFooter.TYPE_HEADER;
+
+ /**
+ * The RtfHeaderFooter for all pages
+ */
+ private RtfHeaderFooter headerAll = null;
+ /**
+ * The RtfHeaderFooter for the first page
+ */
+ private RtfHeaderFooter headerFirst = null;
+ /**
+ * The RtfHeaderFooter for the left hand pages
+ */
+ private RtfHeaderFooter headerLeft = null;
+ /**
+ * The RtfHeaderFooter for the right hand pages
+ */
+ private RtfHeaderFooter headerRight = null;
+ /**
+ * The RtfDocument this RtfHeaderFooterGroup belongs to
+ */
+ private RtfDocument document = null;
+
+ /**
+ * Constructs a RtfHeaderGroup to which you add headers/footers using
+ * via the setHeaderFooter method.
+ *
+ */
+ public RtfHeaderFooterGroup() {
+ super(new Phrase(""), false);
+ this.mode = MODE_NONE;
+ }
+
+ /**
+ * Constructs a certain type of RtfHeaderFooterGroup. RtfHeaderFooter.TYPE_HEADER
+ * and RtfHeaderFooter.TYPE_FOOTER are valid values for type.
+ *
+ * @param doc The RtfDocument this RtfHeaderFooter belongs to
+ * @param type The type of RtfHeaderFooterGroup to create
+ */
+ public RtfHeaderFooterGroup(RtfDocument doc, int type) {
+ super(new Phrase(""), false);
+ this.document = doc;
+ this.type = type;
+ }
+
+ /**
+ * Constructs a RtfHeaderFooterGroup by copying the content of the original
+ * RtfHeaderFooterGroup
+ *
+ * @param doc The RtfDocument this RtfHeaderFooter belongs to
+ * @param headerFooter The RtfHeaderFooterGroup to copy
+ * @param type The type of RtfHeaderFooterGroup to create
+ */
+ public RtfHeaderFooterGroup(RtfDocument doc, RtfHeaderFooterGroup headerFooter, int type) {
+ super(new Phrase(""), false);
+ this.document = doc;
+ this.mode = headerFooter.getMode();
+ this.type = type;
+ if(headerFooter.getHeaderAll() != null) {
+ this.headerAll = new RtfHeaderFooter(this.document, headerFooter.getHeaderAll(), RtfHeaderFooter.DISPLAY_ALL_PAGES);
+ }
+ if(headerFooter.getHeaderFirst() != null) {
+ this.headerFirst = new RtfHeaderFooter(this.document, headerFooter.getHeaderFirst(), RtfHeaderFooter.DISPLAY_FIRST_PAGE);
+ }
+ if(headerFooter.getHeaderLeft() != null) {
+ this.headerLeft = new RtfHeaderFooter(this.document, headerFooter.getHeaderLeft(), RtfHeaderFooter.DISPLAY_LEFT_PAGES);
+ }
+ if(headerFooter.getHeaderRight() != null) {
+ this.headerRight = new RtfHeaderFooter(this.document, headerFooter.getHeaderRight(), RtfHeaderFooter.DISPLAY_RIGHT_PAGES);
+ }
+ setType(this.type);
+ }
+
+ /**
+ * Constructs a RtfHeaderFooterGroup for a certain RtfHeaderFooter.
+ *
+ * @param doc The RtfDocument this RtfHeaderFooter belongs to
+ * @param headerFooter The RtfHeaderFooter to display
+ * @param type The typ of RtfHeaderFooterGroup to create
+ */
+ public RtfHeaderFooterGroup(RtfDocument doc, RtfHeaderFooter headerFooter, int type) {
+ super(new Phrase(""), false);
+ this.document = doc;
+ this.type = type;
+ this.mode = MODE_SINGLE;
+ headerAll = new RtfHeaderFooter(doc, headerFooter, RtfHeaderFooter.DISPLAY_ALL_PAGES);
+ headerAll.setType(this.type);
+ }
+
+ /**
+ * Constructs a RtfHeaderGroup for a certain HeaderFooter
+ *
+ * @param doc The RtfDocument this RtfHeaderFooter belongs to
+ * @param headerFooter The HeaderFooter to display
+ * @param type The typ of RtfHeaderFooterGroup to create
+ */
+ public RtfHeaderFooterGroup(RtfDocument doc, HeaderFooter headerFooter, int type) {
+ super(new Phrase(""), false);
+ this.document = doc;
+ this.type = type;
+ this.mode = MODE_SINGLE;
+ headerAll = new RtfHeaderFooter(doc, headerFooter, type, RtfHeaderFooter.DISPLAY_ALL_PAGES);
+ headerAll.setType(this.type);
+ }
+
+ /**
+ * Sets the RtfDocument this RtfElement belongs to
+ *
+ * @param doc The RtfDocument to use
+ */
+ public void setRtfDocument(RtfDocument doc) {
+ this.document = doc;
+ if(headerAll != null) {
+ headerAll.setRtfDocument(this.document);
+ }
+ if(headerFirst != null) {
+ headerFirst.setRtfDocument(this.document);
+ }
+ if(headerLeft != null) {
+ headerLeft.setRtfDocument(this.document);
+ }
+ if(headerRight != null) {
+ headerRight.setRtfDocument(this.document);
+ }
+ }
+
+ /**
+ * Write the content of this RtfHeaderFooterGroup.
+ *
+ * @return A byte array with the content of this RtfHeaderFooterGroup
+ */
+ public byte[] write() {
+ ByteArrayOutputStream result = new ByteArrayOutputStream();
+ try {
+ if(this.mode == MODE_SINGLE) {
+ result.write(headerAll.write());
+ } else if(this.mode == MODE_MULTIPLE) {
+ if(headerFirst != null) {
+ result.write(headerFirst.write());
+ }
+ if(headerLeft != null) {
+ result.write(headerLeft.write());
+ }
+ if(headerRight != null) {
+ result.write(headerRight.write());
+ }
+ if(headerAll != null) {
+ result.write(headerAll.write());
+ }
+ }
+ } catch(IOException ioe) {
+ ioe.printStackTrace();
+ }
+ return result.toByteArray();
+ }
+
+ /**
+ * Set a RtfHeaderFooter to be displayed at a certain position
+ *
+ * @param headerFooter The RtfHeaderFooter to display
+ * @param displayAt The display location to use
+ */
+ public void setHeaderFooter(RtfHeaderFooter headerFooter, int displayAt) {
+ this.mode = MODE_MULTIPLE;
+ headerFooter.setRtfDocument(this.document);
+ headerFooter.setType(this.type);
+ headerFooter.setDisplayAt(displayAt);
+ switch(displayAt) {
+ case RtfHeaderFooter.DISPLAY_ALL_PAGES:
+ headerAll = headerFooter;
+ break;
+ case RtfHeaderFooter.DISPLAY_FIRST_PAGE:
+ headerFirst = headerFooter;
+ break;
+ case RtfHeaderFooter.DISPLAY_LEFT_PAGES:
+ headerLeft = headerFooter;
+ break;
+ case RtfHeaderFooter.DISPLAY_RIGHT_PAGES:
+ headerRight = headerFooter;
+ break;
+ }
+ }
+
+ /**
+ * Set a HeaderFooter to be displayed at a certain position
+ *
+ * @param headerFooter The HeaderFooter to set
+ * @param displayAt The display location to use
+ */
+ public void setHeaderFooter(HeaderFooter headerFooter, int displayAt) {
+ this.mode = MODE_MULTIPLE;
+ switch(displayAt) {
+ case RtfHeaderFooter.DISPLAY_ALL_PAGES:
+ headerAll = new RtfHeaderFooter(this.document, headerFooter, this.type, displayAt);
+ break;
+ case RtfHeaderFooter.DISPLAY_FIRST_PAGE:
+ headerFirst = new RtfHeaderFooter(this.document, headerFooter, this.type, displayAt);
+ break;
+ case RtfHeaderFooter.DISPLAY_LEFT_PAGES:
+ headerLeft = new RtfHeaderFooter(this.document, headerFooter, this.type, displayAt);
+ break;
+ case RtfHeaderFooter.DISPLAY_RIGHT_PAGES:
+ headerRight = new RtfHeaderFooter(this.document, headerFooter, this.type, displayAt);
+ break;
+ }
+ }
+
+ /**
+ * Set that this RtfHeaderFooterGroup should have a title page. If only
+ * a header / footer for all pages exists, then it will be copied to the
+ * first page aswell.
+ */
+ public void setHasTitlePage() {
+ if(this.mode == MODE_SINGLE) {
+ this.mode = MODE_MULTIPLE;
+ headerFirst = new RtfHeaderFooter(this.document, headerAll, RtfHeaderFooter.DISPLAY_FIRST_PAGE);
+ headerFirst.setType(this.type);
+ }
+ }
+
+ /**
+ * Set that this RtfHeaderFooterGroup should have facing pages. If only
+ * a header / footer for all pages exists, then it will be copied to the left
+ * and right pages aswell.
+ */
+ public void setHasFacingPages() {
+ if(this.mode == MODE_SINGLE) {
+ this.mode = MODE_MULTIPLE;
+ this.headerLeft = new RtfHeaderFooter(this.document, this.headerAll, RtfHeaderFooter.DISPLAY_LEFT_PAGES);
+ this.headerLeft.setType(this.type);
+ this.headerRight = new RtfHeaderFooter(this.document, this.headerAll, RtfHeaderFooter.DISPLAY_RIGHT_PAGES);
+ this.headerRight.setType(this.type);
+ this.headerAll = null;
+ } else if(this.mode == MODE_MULTIPLE) {
+ if(this.headerLeft == null && this.headerAll != null) {
+ this.headerLeft = new RtfHeaderFooter(this.document, this.headerAll, RtfHeaderFooter.DISPLAY_LEFT_PAGES);
+ this.headerLeft.setType(this.type);
+ }
+ if(this.headerRight == null && this.headerAll != null) {
+ this.headerRight = new RtfHeaderFooter(this.document, this.headerAll, RtfHeaderFooter.DISPLAY_RIGHT_PAGES);
+ this.headerRight.setType(this.type);
+ }
+ this.headerAll = null;
+ }
+ }
+
+ /**
+ * Get whether this RtfHeaderFooterGroup has a titlepage
+ *
+ * @return Whether this RtfHeaderFooterGroup has a titlepage
+ */
+ public boolean hasTitlePage() {
+ return (headerFirst != null);
+ }
+
+ /**
+ * Get whether this RtfHeaderFooterGroup has facing pages
+ *
+ * @return Whether this RtfHeaderFooterGroup has facing pages
+ */
+ public boolean hasFacingPages() {
+ return (headerLeft != null || headerRight != null);
+ }
+
+ /**
+ * Unused
+ * @param inTable
+ */
+ public void setInTable(boolean inTable) {
+ }
+
+ /**
+ * Unused
+ * @param inHeader
+ */
+ public void setInHeader(boolean inHeader) {
+ }
+
+ /**
+ * Set the type of this RtfHeaderFooterGroup. RtfHeaderFooter.TYPE_HEADER
+ * or RtfHeaderFooter.TYPE_FOOTER. Also sets the type for all RtfHeaderFooters
+ * of this RtfHeaderFooterGroup.
+ *
+ * @param type The type to use
+ */
+ public void setType(int type) {
+ this.type = type;
+ if(headerAll != null) {
+ headerAll.setType(this.type);
+ }
+ if(headerFirst != null) {
+ headerFirst.setType(this.type);
+ }
+ if(headerLeft != null) {
+ headerLeft.setType(this.type);
+ }
+ if(headerRight != null) {
+ headerRight.setType(this.type);
+ }
+ }
+
+ /**
+ * Gets the mode of this RtfHeaderFooterGroup
+ *
+ * @return The mode of this RtfHeaderFooterGroup
+ */
+ protected int getMode() {
+ return this.mode;
+ }
+
+ /**
+ * Gets the RtfHeaderFooter for all pages
+ *
+ * @return The RtfHeaderFooter for all pages
+ */
+ protected RtfHeaderFooter getHeaderAll() {
+ return headerAll;
+ }
+
+ /**
+ * Gets the RtfHeaderFooter for the title page
+ *
+ * @return The RtfHeaderFooter for the title page
+ */
+ protected RtfHeaderFooter getHeaderFirst() {
+ return headerFirst;
+ }
+
+ /**
+ * Gets the RtfHeaderFooter for all left hand pages
+ *
+ * @return The RtfHeaderFooter for all left hand pages
+ */
+ protected RtfHeaderFooter getHeaderLeft() {
+ return headerLeft;
+ }
+
+ /**
+ * Gets the RtfHeaderFooter for all right hand pages
+ *
+ * @return The RtfHeaderFooter for all right hand pages
+ */
+ protected RtfHeaderFooter getHeaderRight() {
+ return headerRight;
+ }
+}