// name : RtfHtmlElementPath.cs // project : RTF Framelet // created : Jani Giannoudis - 2008.06.09 // language : c# // environment: .NET 2.0 // copyright : (c) 2004-2013 by Jani Giannoudis, Switzerland using System.Collections; using System.Text; using System.Web.UI; namespace Itenso.Rtf.Converter.Html { public class RtfHtmlElementPath { // Members private readonly Stack _elements = new Stack(); public int Count => _elements.Count; // Count public HtmlTextWriterTag Current => (HtmlTextWriterTag) _elements.Peek(); // Current public bool IsCurrent(HtmlTextWriterTag tag) { return Current == tag; } // IsCurrent public bool Contains(HtmlTextWriterTag tag) { return _elements.Contains(tag); } // Contains public void Push(HtmlTextWriterTag tag) { _elements.Push(tag); } // Push public void Pop() { _elements.Pop(); } // Pop public override string ToString() { if (_elements.Count == 0) return base.ToString(); var sb = new StringBuilder(); var first = true; foreach (var element in _elements) { if (!first) sb.Insert(0, " > "); sb.Insert(0, element.ToString()); first = false; } return sb.ToString(); } // ToString } }