#pragma warning disable 219 void PopulateDir(Node me, string dir) { Console.WriteLine("Adding: " + dir); foreach (string child_dir in Directory.GetDirectories(dir)) { string url = Path.GetFileName(child_dir); Node n = me.LookupNode("Dir: " + url, "simple-directory:" + url); PopulateDir(me, child_dir); } foreach (string file in Directory.GetFiles(dir)) { Console.WriteLine(" File: " + file); string file_code = me.tree.HelpSource.PackFile(file); // // The url element encoded for the file is: // originalfilename#CODE // // The code is assigned to us after the file has been packaged // We use the original-filename later to render html or text files // Node n = me.LookupNode(Path.GetFileName(file), file + "#" + file_code); } }
public override void PopulateTree(Tree tree) { Node top = tree.LookupNode("Directory at: " + basedir, "simple:"); foreach (string dir in Directory.GetDirectories(basedir)) { string url = Path.GetFileName(dir); Node n = top.LookupNode("Dir: " + url, url); PopulateDir(n, dir); } }
void PopulateNode (XPathNodeIterator nodes, Node treeNode) { while (nodes.MoveNext ()) { XPathNavigator n = nodes.Current; string secNumber = n.GetAttribute ("number", ""), secName = n.GetAttribute ("name", ""); treeNode.tree.HelpSource.Message (TraceLevel.Info, "\tSection: " + secNumber); treeNode.tree.HelpSource.PackFile (Path.Combine (basedir, secNumber + ".xml"), secNumber); Node thisNode = treeNode.LookupNode (secNumber + ": " + secName, "ecmaspec:" + secNumber); if (n.HasChildren) PopulateNode (n.SelectChildren ("node", ""), thisNode); } }
#pragma warning disable 219 void PopulateDir (Node me, string dir) { Console.WriteLine ("Adding: " + dir); foreach (string child_dir in Directory.GetDirectories (dir)){ string url = Path.GetFileName (child_dir); Node n = me.LookupNode ("Dir: " + url, "simple-directory:" + url); PopulateDir (me, child_dir); } foreach (string file in Directory.GetFiles (dir)){ Console.WriteLine (" File: " + file); string file_code = me.tree.HelpSource.PackFile (file); // // The url element encoded for the file is: // originalfilename#CODE // // The code is assigned to us after the file has been packaged // We use the original-filename later to render html or text files // Node n = me.LookupNode (Path.GetFileName (file), file + "#" + file_code); } }
void PopulateNode(XPathNodeIterator nodes, Node treeNode) { while (nodes.MoveNext()) { XPathNavigator n = nodes.Current; string secNumber = n.GetAttribute("number", ""), secName = n.GetAttribute("name", ""); treeNode.tree.HelpSource.Message(TraceLevel.Info, "\tSection: " + secNumber); treeNode.tree.HelpSource.PackFile(Path.Combine(basedir, secNumber + ".xml"), secNumber); Node thisNode = treeNode.LookupNode(secNumber + ": " + secName, "ecmaspec:" + secNumber); if (n.HasChildren) { PopulateNode(n.SelectChildren("node", ""), thisNode); } } }
void PopulateClass (Tree tree, string ns, Node ns_node, string file) { XmlDocument doc = new XmlDocument (); doc.Load (file); string name = EcmaDoc.GetClassName (doc); string assembly = EcmaDoc.GetClassAssembly (doc); string kind = EcmaDoc.GetTypeKind (doc); string full = EcmaDoc.GetFullClassName (doc); Node class_node; string file_code = ns_node.tree.HelpSource.PackFile (file); XmlNode class_summary = detached.ImportNode (doc.SelectSingleNode ("/Type/Docs/summary"), true); ArrayList l = (ArrayList) class_summaries [ns]; if (l == null){ l = new ArrayList (); class_summaries [ns] = (object) l; } l.Add (new TypeInfo (kind, assembly, full, name, class_summary)); class_node = ns_node.LookupNode (String.Format ("{0} {1}", name, kind), "ecma:" + file_code + "#" + name + "/"); if (kind == "Delegate") { if (doc.SelectSingleNode("/Type/ReturnValue") == null) tree.HelpSource.Message (TraceLevel.Error, "Delegate " + name + " does not have a ReturnValue node. See the ECMA-style updates."); } if (kind == "Enumeration") return; if (kind == "Delegate") return; // // Always add the Members node // class_node.CreateNode ("Members", "*"); PopulateMember (doc, name, class_node, "Constructor", "Constructors"); PopulateMember (doc, name, class_node, "Method", "Methods"); PopulateMember (doc, name, class_node, "Property", "Properties"); PopulateMember (doc, name, class_node, "Field", "Fields"); PopulateMember (doc, name, class_node, "Event", "Events"); PopulateMember (doc, name, class_node, "Operator", "Operators"); }
void Populate (Node parent, XmlNodeList xml_node_list) { foreach (XmlNode xml_node in xml_node_list){ XmlAttribute e = xml_node.Attributes ["parent"]; if (e != null && name_to_node.ContainsKey (e.InnerText)) { Node p = (Node) name_to_node [e.InnerText]; xml_node.Attributes.Remove (e); Populate (p, xml_node.SelectNodes (".")); continue; } e = xml_node.Attributes ["label"]; if (e == null){ Console.Error.WriteLine ("`label' attribute missing in <node>"); continue; } string label = e.InnerText; e = xml_node.Attributes ["name"]; if (e == null){ Console.Error.WriteLine ("`name' attribute missing in <node>"); continue; } string name = e.InnerText; Node n = parent.LookupNode (label, "root:/" + name); n.EnsureNodes (); name_to_node [name] = n; XmlNodeList children = xml_node.SelectNodes ("./node"); if (children != null) Populate (n, children); } }