/// <summary> /// If you need to hand over parameters from the hosting application /// (Pali Text Reader) towards the plugin, this is the method to call. /// </summary> /// <param name="o"></param public void SetPluginParameter(Object o) { bookContent = (ITree<String>)o; if (bookContent != null) { FillTreeView(this.contentTree, bookContent); } }
private void ExamineBookContents() { try { bookContents = NodeTree<String>.NewTree(); INode<String> section = null; INode<String> sutta = null; string l = ""; string p = ""; string prev = ""; for(int i = 0; i < ps.length; i++) { mshtml.IHTMLElement ce = (mshtml.IHTMLElement)ps.item((object)i,0); if (ce != null) { l = ce.outerHTML; if (l != null) { if (l.Contains("=c10>")) { p = ce.innerHTML; if (bookContents != null) { book = bookContents.AddChild(p); } } else if ((l.Contains("=c11>")) || (l.Contains("=c15>"))) { p = ce.innerHTML; if (book != null) { section = book.AddChild(p); prev = "section"; } } else if ((l.Contains("=c14>"))) { p = ce.innerHTML; if (book != null) { if (Regex.IsMatch(p, @"\d{1}\. ")) { sutta = section.AddChild(p); prev = "sutta"; } } } else if (l.Contains("=c03>")) { p = ce.innerHTML; if (Regex.IsMatch(p, @"\d{1}\. ")) { string par = p.Substring(0, p.IndexOf(".") + 2); if (sutta != null && prev == "sutta") sutta.AddChild(par); else if (section != null && prev == "section") section.AddChild(par); } } } } } OnContentsParsed(); } catch(Exception ex) { MessageBox.Show("Error: " + ex.StackTrace.ToString() + ex.Message.ToString()); } }