public void Bind() { DbContentClipCollection rootCatalogClips; CssInfo rootCssInfo; // Load the catalog to start building a menu from rootCatalogClips = __rootCatalog.GetClips(); rootCatalogClips.Sort(ContentCompareKey.MenuOrder); // Set menu css to catalog css properties rootCssInfo = new CssInfo(__rootCatalog.MenuCssClass); if (__looksEnabled) { rootCssInfo.SetLook(__menu); } DbContentCatalogCollection catalogs = __rootCatalog.GetCatalogs(); catalogs.Sort(ContentCompareKey.MenuOrder); for (int catalogIndex = 0; catalogIndex < catalogs.Count; catalogIndex++) { addCatalogToMenu(__menu.Items, catalogs[catalogIndex]); } addClipsToMenu(__menu.Items, __rootCatalog, rootCatalogClips); }
private void addCatalogToMenu(ComponentArt.Web.UI.MenuItemCollection parentItemCollection, DbContentCatalog catalog) { if (!catalog.Enabled || !catalog.MenuEnabled) { return; } DbContentClipCollection clips; ComponentArt.Web.UI.MenuItem catalogMenuItem; IconInfo leftIconInfo, rightIconInfo; CssInfo catalogCssInfo; clips = catalog.GetMenuEnabledClips(); clips.Sort(ContentCompareKey.MenuOrder); catalogMenuItem = new ComponentArt.Web.UI.MenuItem(); parentItemCollection.Add(catalogMenuItem); catalogMenuItem.Text = catalog.MenuLabel; catalogMenuItem.ToolTip = catalog.MenuTooltip; if (catalog.DefaultClip != null) { if (catalog.DefaultClip.OverrideUrl != string.Empty) { catalogMenuItem.NavigateUrl = catalog.DefaultClip.OverrideUrl; } else { catalogMenuItem.NavigateUrl = string.Format(__linkFormat, catalog.DefaultClip.ID); } catalogMenuItem.ID = catalog.DefaultClip.ID.ToString(); } if (catalog.MenuCssClass == "[rootcatalog]") { catalogCssInfo = new CssInfo(__rootCatalog.MenuCssClass); } else { catalogCssInfo = new CssInfo(catalog.MenuCssClass); } if (catalog.MenuLeftIcon == "[rootcatalog]") { leftIconInfo = new IconInfo(__rootCatalog.MenuLeftIcon); } else { leftIconInfo = new IconInfo(catalog.MenuLeftIcon); } if (catalog.MenuRightIcon == "[rootcatalog]") { rightIconInfo = new IconInfo(__rootCatalog.MenuRightIcon); } else { rightIconInfo = new IconInfo(catalog.MenuRightIcon); } if (__looksEnabled) { catalogCssInfo.SetLook(catalogMenuItem); leftIconInfo.SetLeftLook(catalogMenuItem); rightIconInfo.SetRightLook(catalogMenuItem); } DbContentCatalogCollection childCatalogs = catalog.GetCatalogs();; childCatalogs.Sort(ContentCompareKey.SortOrder); foreach (DbContentCatalog childCatalog in childCatalogs) { addCatalogToMenu(catalogMenuItem.Items, childCatalog); } addClipsToMenu(catalogMenuItem.Items, catalog, clips); }