using System;
using System.Collections.Generic;
using System.Xml.Linq;
using System.IO.Packaging;
using System.Collections.ObjectModel;
namespace Novacode
{
public class Footer : Container, IParagraphContainer
{
public bool PageNumbers
{
get
{
return false;
}
set
{
XElement e = XElement.Parse
(@"
1
"
);
Xml.AddFirst(e);
}
}
internal Footer(DocX document, XElement xml, PackagePart mainPart): base(document, xml)
{
this.mainPart = mainPart;
}
public override Paragraph InsertParagraph()
{
Paragraph p = base.InsertParagraph();
p.PackagePart = mainPart;
return p;
}
public override Paragraph InsertParagraph(int index, string text, bool trackChanges)
{
Paragraph p = base.InsertParagraph(index, text, trackChanges);
p.PackagePart = mainPart;
return p;
}
public override Paragraph InsertParagraph(Paragraph p)
{
p.PackagePart = mainPart;
return base.InsertParagraph(p);
}
public override Paragraph InsertParagraph(int index, Paragraph p)
{
p.PackagePart = mainPart;
return base.InsertParagraph(index, p);
}
public override Paragraph InsertParagraph(int index, string text, bool trackChanges, Formatting formatting)
{
Paragraph p = base.InsertParagraph(index, text, trackChanges, formatting);
p.PackagePart = mainPart;
return p;
}
public override Paragraph InsertParagraph(string text)
{
Paragraph p = base.InsertParagraph(text);
p.PackagePart = mainPart;
return p;
}
public override Paragraph InsertParagraph(string text, bool trackChanges)
{
Paragraph p = base.InsertParagraph(text, trackChanges);
p.PackagePart = mainPart;
return p;
}
public override Paragraph InsertParagraph(string text, bool trackChanges, Formatting formatting)
{
Paragraph p = base.InsertParagraph(text, trackChanges, formatting);
p.PackagePart = mainPart;
return p;
}
public override Paragraph InsertEquation(String equation)
{
Paragraph p = base.InsertEquation(equation);
p.PackagePart = mainPart;
return p;
}
public override ReadOnlyCollection Paragraphs
{
get
{
ReadOnlyCollection l = base.Paragraphs;
foreach (var paragraph in l)
{
paragraph.mainPart = mainPart;
}
return l;
}
}
public override List Tables
{
get
{
List l = base.Tables;
l.ForEach(x => x.mainPart = mainPart);
return l;
}
}
public new Table InsertTable(int rowCount, int columnCount)
{
if (rowCount < 1 || columnCount < 1)
throw new ArgumentOutOfRangeException("Row and Column count must be greater than zero.");
Table t = base.InsertTable(rowCount, columnCount);
t.mainPart = mainPart;
return t;
}
public new Table InsertTable(int index, Table t)
{
Table t2 = base.InsertTable(index, t);
t2.mainPart = mainPart;
return t2;
}
public new Table InsertTable(Table t)
{
t = base.InsertTable(t);
t.mainPart = mainPart;
return t;
}
public new Table InsertTable(int index, int rowCount, int columnCount)
{
if (rowCount < 1 || columnCount < 1)
throw new ArgumentOutOfRangeException("Row and Column count must be greater than zero.");
Table t = base.InsertTable(index, rowCount, columnCount);
t.mainPart = mainPart;
return t;
}
}
}