private GetFirstRunEffectedByEdit ( int index, EditType type = EditType.ins ) : |
||
index | int | |
type | EditType | |
return |
internal static XElement[] SplitParagraph(Paragraph p, int index) { // In this case edit dosent really matter, you have a choice. Run r = p.GetFirstRunEffectedByEdit(index, EditType.ins); XElement[] split; XElement before, after; if (r.Xml.Parent.Name.LocalName == "ins") { split = p.SplitEdit(r.Xml.Parent, index, EditType.ins); before = new XElement(p.Xml.Name, p.Xml.Attributes(), r.Xml.Parent.ElementsBeforeSelf(), split[0]); after = new XElement(p.Xml.Name, p.Xml.Attributes(), r.Xml.Parent.ElementsAfterSelf(), split[1]); } else if (r.Xml.Parent.Name.LocalName == "del") { split = p.SplitEdit(r.Xml.Parent, index, EditType.del); before = new XElement(p.Xml.Name, p.Xml.Attributes(), r.Xml.Parent.ElementsBeforeSelf(), split[0]); after = new XElement(p.Xml.Name, p.Xml.Attributes(), r.Xml.Parent.ElementsAfterSelf(), split[1]); } else { split = Run.SplitRun(r, index); before = new XElement(p.Xml.Name, p.Xml.Attributes(), r.Xml.ElementsBeforeSelf(), split[0]); after = new XElement(p.Xml.Name, p.Xml.Attributes(), split[1], r.Xml.ElementsAfterSelf()); } if (before.Elements().Count() == 0) before = null; if (after.Elements().Count() == 0) after = null; return new XElement[] { before, after }; }