public CategoriesFeed(string dimensionXmlFilePath, XN googleNsAtom, XN googleNsG, XN googleNsC, XN googleNs, XN indigoLink, string taxanomyVersionName) { _gNsAtom = googleNsAtom; _gNsG = googleNsG; _gNsC = googleNsC; _gNs = googleNs; _taxonomyVersionName = taxanomyVersionName; _indigoLink = indigoLink; AddRootNode(); var xd = GetDimensionsXml(dimensionXmlFilePath); var rootNode = xd.XPathSelectElements("DIMENSIONS/DIMENSION[@NAME='Categories']/DIMENSION_NODE").First(); AddNodeToFeed(string.Empty, rootNode); _catFeedXml.Add(_feedElement); }
protected override void OnPopup(EventArgs e) { if (!this.SubItemsAdded_) { this.MenuItems.Clear(); foreach (XmlNode XN in this.XCategory_.ChildNodes) { if (XN is XmlElement) { if (XN.Name == "category") { // Only add it if there's stuff in it if (XN.SelectSingleNode("./category | ./rom-file") != null) { this.MenuItems.Add(new CategoryMenuItem(XN, this.ROMMenuItemClick_)); } } else if (XN.Name == "separator") { this.MenuItems.Add("-"); } else if (XN.Name == "rom-file") { // Don't add it unless it points somewhere (note: can cause empty category items) if (XN.Attributes["id"] != null) { this.MenuItems.Add(new ROMMenuItem(this.BuildItemName(XN), XmlConvert.ToInt32(XN.Attributes["id"].InnerText), this.ROMMenuItemClick_)); } else if (XN.Attributes["app"] != null && XN.Attributes["dir"] != null && XN.Attributes["file"] != null) { byte ROMApp = XmlConvert.ToByte(XN.Attributes["app"].InnerText); byte ROMDir = XmlConvert.ToByte(XN.Attributes["dir"].InnerText); byte ROMFile = XmlConvert.ToByte(XN.Attributes["file"].InnerText); this.MenuItems.Add(new ROMMenuItem(this.BuildItemName(XN), ROMApp, ROMDir, ROMFile, this.ROMMenuItemClick_)); } } } } this.SubItemsAdded_ = true; } base.OnPopup(e); }