public OutlineNode NextSibling(UString title) { if (_nextSibling != null) { throw new InvalidOperationException(); } return(_nextSibling = new OutlineNode(this._parent, this._value + 1, title)); }
public OutlineNode FirstChild(UString title) { if (_firstChild != null) { throw new InvalidOperationException(); } return(_firstChild = new OutlineNode(this, 1, title)); }
private void Visit(PdfOutline parentOutline, OutlineNode node) { if (node == null) { return; } var counterString = Path(node); var thisOutline = new PdfOutline(parentOutline, PdfAction.GotoLocalPage(counterString, false), node.Title.ToString()); Visit(thisOutline, node.FirstChild()); Visit(parentOutline, node.NextSibling()); }
private void AppendOutlineNode(int level, UString title) { if (level <= 0) { throw new ArgumentOutOfRangeException("level"); } if (title == null) { throw new ArgumentNullException("title"); } //initial if (_currentNode == null) { _initialLevel = level; _currentNode = new OutlineNode(UString.Empty); } //TODO: behave initial level is the maximum(top) level //update var currentLevel = _currentNode.Level; if (level > currentLevel) { for (int i = currentLevel; i < level - 1; ++i) { _currentNode = _currentNode.FirstChild(UString.Empty); } _currentNode = _currentNode.FirstChild(title); } else { for (int i = level; i < currentLevel; ++i) { _currentNode = _currentNode.Parent; } _currentNode = _currentNode.NextSibling(title); } }
public OutlineNode FirstChild(UString title) { if (_firstChild != null) throw new InvalidOperationException(); return _firstChild = new OutlineNode(this, 1, title); }
private OutlineNode(OutlineNode parent, int initialValue, UString title) { _parent = parent; _value = initialValue; _title = title; }
private void Visit(PdfOutline parentOutline, OutlineNode node) { if (node == null) return; var counterString = Path(node); var thisOutline = new PdfOutline(parentOutline, PdfAction.GotoLocalPage(counterString, false), node.Title.ToString()); Visit(thisOutline, node.FirstChild()); Visit(parentOutline, node.NextSibling()); }
private static string Path(OutlineNode node) { var counterString = String.Join(".", node.Path); return counterString; }
public void Clear() { _currentNode = null; _initialLevel = 0; }
public OutlineNode NextSibling(UString title) { if (_nextSibling != null) throw new InvalidOperationException(); return _nextSibling = new OutlineNode(this._parent, this._value + 1, title); }
private static string Path(OutlineNode node) { var counterString = String.Join(".", node.Path); return(counterString); }