Exemplo n.º 1
0
        public BarSubItem MapFrom(BarManager barManager, IMenuBarSubMenu menuBarSubMenu)
        {
            try
            {
                barManager.BeginUpdate();

                var existingItem = barManager.Items[menuBarSubMenu.Name];
                if (existingItem != null)
                {
                    return(existingItem as BarSubItem);
                }

                var mainMenu = new BarSubItem(barManager, menuBarSubMenu.Caption);

                foreach (var menuElement in menuBarSubMenu.AllItems())
                {
                    var barItem = menuElement.IsAnImplementationOf <IMenuBarButton>()
                  ? _mapper.MapFrom(barManager, menuElement as IMenuBarButton)
                  : MapFrom(barManager, menuElement as IMenuBarSubMenu);

                    mainMenu.AddItem(barItem).BeginGroup = menuElement.BeginGroup;
                    //this is required since sometime this information is not updated as expected
                    mainMenu.LinksPersistInfo[mainMenu.LinksPersistInfo.Count - 1].BeginGroup = menuElement.BeginGroup;
                }

                UpdateBarButtonItem(menuBarSubMenu, mainMenu);
                return(mainMenu);
            }
            finally
            {
                barManager.EndUpdate();
            }
        }
        public BarItem MapFrom(BarManager barManager, IMenuBarItem menuBarItem)
        {
            try
            {
                barManager.BeginUpdate();
                if (menuBarItem.IsAnImplementationOf <IMenuBarButton>())
                {
                    return(_barItemMapper.MapFrom(barManager, menuBarItem as IMenuBarButton));
                }

                return(_barSubItemMapper.MapFrom(barManager, menuBarItem as IMenuBarSubMenu));
            }
            finally
            {
                barManager.EndUpdate();
            }
        }