Пример #1
0
 void RemoveDemoModulePageHeaderItemLinks(DemoModule demoModuleControl)
 {
     foreach (var itemLinkBase in demoModuleControl.PageHeaderItemLinks)
     {
         Ribbon.PageHeaderItemLinks.Remove(itemLinkBase);
     }
 }
Пример #2
0
        void OnNavBarItemSelecting(object sender, NavBarItemSelectingEventArgs e)
        {
            if (e.PrevItem != null)
            {
                var prevCategory = (DemoModuleCategory)e.PrevItem.DataContext;
                List <DemoModule> modules;
                if (_demoModules.TryGetValue(prevCategory, out modules))
                {
                    foreach (var demoModule in modules)
                    {
                        demoModule.Bar.IsVisible = false;
                        _subcategories[((ClassicShowType)demoModule.ShowMethodType).Subcategory].IsVisible = false;
                    }
                }
            }
            if (e.NewItem == null)
            {
                Ribbon.SelectedPage      = Ribbon.SelectedPage.PageCategory.Pages[0];
                currentDemoModuleControl = null;
                return;
            }
            var newCategory = (DemoModuleCategory)e.NewItem.DataContext;

            foreach (var demoModule in _demoModules[newCategory])
            {
                _subcategories[((ClassicShowType)demoModule.ShowMethodType).Subcategory].IsVisible = true;
                demoModule.Bar.IsVisible = true;
            }
            Ribbon.SelectedPage = _demoModules[newCategory][0].Bar;
        }
Пример #3
0
        void RemoveDemoModuleBar(DemoModule demoModule)
        {
            RemoveDemoModulePageHeaderItemLinks(demoModule);
            var rpcb = _subcategories[((ClassicShowType)demoModule.ShowMethodType).Subcategory];

            this.ribbonManager.Unmerge(demoModule.Bar);
            if (rpcb.Pages.Count == 0)
            {
                Ribbon.Categories.Remove(_subcategories[((ClassicShowType)demoModule.ShowMethodType).Subcategory]);
                _subcategories.Remove(((ClassicShowType)demoModule.ShowMethodType).Subcategory);
            }
            else
            {
                var isVisible = false;
                foreach (var page in rpcb.Pages)
                {
                    if (page.IsVisible)
                    {
                        isVisible = true;
                        break;
                    }
                }
                _subcategories[((ClassicShowType)demoModule.ShowMethodType).Subcategory].IsVisible = isVisible;
            }
        }
Пример #4
0
        void PrepareDemoModuleRoot(DemoModule demoModuleControl)
        {
            var manager = ((Grid)demoModuleControl.Content).Children[0] as DockLayoutManager;

            if (manager != null)
            {
                demoModuleControl.Root = demoModuleControl;
                return;
            }
            manager = new DockLayoutManager()
            {
                Background = new SolidColorBrush(Colors.Transparent)
            };
            manager.LayoutRoot = new LayoutGroup()
            {
                Orientation = Orientation.Horizontal, Background = new SolidColorBrush(Colors.Transparent)
            };
            var demoModulePanel = new LayoutPanel()
            {
                ShowCaption = false, ShowBorder = false, Background = new SolidColorBrush(Colors.Transparent)
            };

            demoModulePanel.Content = demoModuleControl;
            manager.LayoutRoot.Add(demoModulePanel);
            demoModuleControl.Root = manager;
        }
Пример #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="demoModule"></param>
        public void RemoveDemoModule(DemoModule demoModule)
        {
            DepPropertyHelper.UnsubscribeFromChanged(demoModule.Bar, RibbonPage.IsSelectedProperty, demoModule.BarIsSelectedChanged);
            var demoModulesList = _demoModules[((ClassicShowType)demoModule.ShowMethodType).Category];

            demoModulesList.Remove(demoModule);
            if (demoModulesList.Count == 0)
            {
                _demoModules.Remove(((ClassicShowType)demoModule.ShowMethodType).Category);
                UpdateNavBar();
            }
            RemoveDemoModuleBar(demoModule);
        }
Пример #6
0
        void PrepareDemoModuleBar(DemoModule demoModule)
        {
            var grid = (Grid)demoModule.Content;

            demoModule.BarManager    = (BarManager)grid.Children[0];
            demoModule.RibbonControl = (RibbonControl)demoModule.BarManager.Child;
            grid.Children.Remove(demoModule.BarManager);
            demoModule.Bar = demoModule.RibbonControl.Categories[0].Pages[0];
            demoModule.BarIsSelectedChanged = (s, e) => RaiseDemoModuleBarIsSelectedChanged(demoModule);
            demoModule.PageHeaderItemLinks  = new List <BarItemLinkBase>(demoModule.RibbonControl.PageHeaderItemLinks);
            foreach (var link in demoModule.PageHeaderItemLinks)
            {
                demoModule.RibbonControl.PageHeaderItemLinks.Remove(link);
            }
        }
Пример #7
0
        /// <summary>
        /// Adds an application module depended on the category
        /// </summary>
        /// <param name="demoModule">The demo module.</param>
        public void AddDemoModule(DemoModule demoModule)
        {
            PrepareDemoModuleBar(demoModule);
            PrepareDemoModuleRoot(demoModule);
            DepPropertyHelper.SubscribeToChanged(demoModule.Bar, RibbonPage.IsSelectedProperty, demoModule.BarIsSelectedChanged);
            AddDemoModuleBar(demoModule);
            List <DemoModule> demoModulesList;

            if (!_demoModules.TryGetValue(((ClassicShowType)demoModule.ShowMethodType).Category, out demoModulesList))
            {
                demoModulesList = new List <DemoModule>();
                _demoModules.Add(((ClassicShowType)demoModule.ShowMethodType).Category, demoModulesList);
                UpdateNavBar();
            }
            demoModulesList.Add(demoModule);
        }
Пример #8
0
 void RaiseDemoModuleBarIsSelectedChanged(DemoModule demoModuleControl)
 {
     if (!demoModuleControl.Bar.IsSelected)
     {
         currentDemoModuleControl = demoModuleControl;
         return;
     }
     if (demoModuleControl != currentDemoModuleControl)
     {
         if (currentDemoModuleControl != null)
         {
             RemoveDemoModulePageHeaderItemLinks(currentDemoModuleControl);
         }
         currentDemoModuleControl = demoModuleControl;
         SetDemoModulePresenterContent(demoModuleControl.Root);
         AddDemoModulePageHeaderItemLinks(currentDemoModuleControl);
     }
 }
Пример #9
0
 public void SelectDemoModule(DemoModule demoModule)
 {
     if (demoModule == null)
     {
         if (currentDemoModuleControl != null)
         {
             RemoveDemoModulePageHeaderItemLinks(currentDemoModuleControl);
             currentDemoModuleControl = null;
         }
         _demoModulePresenter.Content = DefaultPage;
         if (_navBar.SelectedItem != null)
         {
             _navBar.SelectedItem.Group.SelectedItemIndex = -1;
         }
     }
     else
     {
         _navBar.View.SelectItem(_navBarItems[((ClassicShowType)demoModule.ShowMethodType).Category]);
         Ribbon.SelectedPage = demoModule.Bar;
     }
 }
Пример #10
0
        public override void Apply(FrameworkElement content)
        {
            base.Apply(content);
            var module = content as DemoModule;

            if (DemoModulesControl.Current == null)
            {
                return;
            }
            module.Height = double.NaN;
            module.Width  = double.NaN;
            demoModule    = module;
            if (demoModule == null)
            {
                return;
            }
            demoModule.AddPrefixToBarItems();
            if (Category != null)
            {
                Show();
            }
        }
Пример #11
0
        void AddDemoModuleBar(DemoModule demoModule)
        {
            var isVisible = CurrentCategory == ((ClassicShowType)demoModule.ShowMethodType).Category;
            RibbonPageCategoryBase rpcb;

            if (_subcategories.ContainsKey(((ClassicShowType)demoModule.ShowMethodType).Subcategory))
            {
                rpcb = _subcategories[((ClassicShowType)demoModule.ShowMethodType).Subcategory];
            }
            else
            {
                rpcb = new RibbonPageCategory()
                {
                    Caption = ((ClassicShowType)demoModule.ShowMethodType).Subcategory
                };
                Ribbon.Categories.Add(rpcb);
                _subcategories.Add(((ClassicShowType)demoModule.ShowMethodType).Subcategory, rpcb);
            }
            rpcb.IsVisible           = isVisible;
            demoModule.Bar.IsVisible = isVisible;
            this.ribbonManager.Merge(rpcb, demoModule.BarManager, demoModule.RibbonControl);
        }
Пример #12
0
 public DemoModuleSelectCategoryCommand(DemoModule demoModule)
 {
     this.demoModule = demoModule;
 }