예제 #1
0
        private Control CreateChildItems(Micajah.Common.Bll.Action item)
        {
            HtmlGenericControl div = null;

            if (item.ShowChildrenInDetailMenu)
            {
                ActionCollection availableChildActions = item.GetAvailableChildActions(m_ActionIdList, m_IsFrameworkAdmin, m_IsAuthenticated);
                if (availableChildActions.Count > 0)
                {
                    ControlList list = null;
                    try
                    {
                        div = new HtmlGenericControl("div");
                        div.Attributes["class"] = "C";
                        list           = new ControlList();
                        list.Delimiter = ", ";

                        foreach (Micajah.Common.Bll.Action childItem in availableChildActions)
                        {
                            if (list.Count < MaxChildItems)
                            {
                                list.Add(CreateItemLink(childItem));
                            }
                            else
                            {
                                list.Add(CreateItemLink(item, Resources.DetailMenu_Ellipsis, false));
                                break;
                            }
                        }

                        div.Controls.Add(list);
                    }
                    finally
                    {
                        if (div != null)
                        {
                            div.Dispose();
                        }
                        if (list != null)
                        {
                            list.Dispose();
                        }
                    }
                }
            }
            return(div);
        }
예제 #2
0
        /// <summary>
        /// Creates child controls.
        /// </summary>
        protected override void CreateChildControls()
        {
            this.Controls.Clear();

            if (this.Items.Count == 0)
            {
                return;
            }

            HtmlGenericControl mainContainer  = null;
            HtmlGenericControl container      = null;
            HtmlGenericControl innerContainer = null;
            HtmlGenericControl bar            = null;
            HtmlGenericControl ul             = null;
            HtmlGenericControl p           = null;
            ControlList        controlList = null;
            Control            itemLink    = null;
            Guid mainMenuItemId            = this.SelectedActionId;

            try
            {
                mainContainer = new HtmlGenericControl("div");
                mainContainer.Attributes["class"] = "Mp_Mm";
                this.Controls.Add(mainContainer);

                MasterPageTheme theme = FrameworkConfiguration.Current.WebApplication.MasterPage.Theme;

                switch (theme)
                {
                case MasterPageTheme.Gradient:
                case MasterPageTheme.StandardTabs:
                case MasterPageTheme.Modern:
                    ul = new HtmlGenericControl("ul");

                    string cssClass = null;

                    if (theme == MasterPageTheme.Modern)
                    {
                        p = new HtmlGenericControl("p");
                        p.Attributes["class"] = "mobile-nav";
                        p.InnerHtml           = Resources.MainMenu_MenuLink_Text;

                        innerContainer = new HtmlGenericControl("div");
                        innerContainer.Attributes["class"] = "col-sm-12";
                        innerContainer.Controls.Add(p);
                        innerContainer.Controls.Add(ul);

                        container = new HtmlGenericControl("div");
                        container.Attributes["class"] = "container";
                        container.Controls.Add(innerContainer);

                        mainContainer.Controls.Add(container);

                        cssClass = "active";
                    }
                    else
                    {
                        mainContainer.Controls.Add(ul);

                        cssClass = "S";
                    }

                    foreach (Micajah.Common.Bll.Action item in this.Items)
                    {
                        if (item.ActionId == ActionProvider.StartPageActionId)
                        {
                            bool redirect = false;

                            Micajah.Common.WebControls.AdminControls.StartControl.GetStartMenuCheckedItems(m_UserContext, out redirect);

                            if (redirect)
                            {
                                continue;
                            }
                        }

                        ul.Controls.Add(CreateLinkAsListItem(item, ((item.ActionId == mainMenuItemId) ? cssClass : null)));
                    }

                    if (theme != MasterPageTheme.Modern)
                    {
                        bar = new HtmlGenericControl("div");
                        bar.Attributes["class"] = "Mp_Mmb";

                        this.Controls.Add(bar);
                    }
                    break;

                case MasterPageTheme.Standard:
                    controlList           = new ControlList();
                    controlList.Delimiter = " &nbsp; | &nbsp; ";

                    foreach (Micajah.Common.Bll.Action item in this.Items)
                    {
                        if (item.ActionId == ActionProvider.StartPageActionId)
                        {
                            bool redirect = false;

                            Micajah.Common.WebControls.AdminControls.StartControl.GetStartMenuCheckedItems(m_UserContext, out redirect);

                            if (redirect)
                            {
                                continue;
                            }
                        }

                        itemLink = Submenu.CreateLink(item, ((item.ActionId == mainMenuItemId) ? "S" : null), false);

                        controlList.Add(itemLink);
                    }

                    mainContainer.Controls.Add(controlList);
                    break;
                }
            }
            finally
            {
                if (ul != null)
                {
                    ul.Dispose();
                }

                if (mainContainer != null)
                {
                    mainContainer.Dispose();
                }

                if (bar != null)
                {
                    bar.Dispose();
                }

                if (container != null)
                {
                    container.Dispose();
                }

                if (innerContainer != null)
                {
                    innerContainer.Dispose();
                }

                if (p != null)
                {
                    p.Dispose();
                }

                if (controlList != null)
                {
                    controlList.Dispose();
                }

                if (itemLink != null)
                {
                    itemLink.Dispose();
                }
            }
        }