/// <summary>
        /// Initializes a new <see cref="ToolsCollectionUIAdapter"/>
        /// </summary>
        /// <param name="tools">Tools collection represented by the ui adapter</param>
        public ToolsCollectionUIAdapter(ToolsCollectionBase tools)
        {
            Guard.ArgumentNotNull(tools, "tools");

            if (tools.Owner is UltraTaskPaneToolbar ||
                (tools.Owner is PopupMenuTool == false &&
                 tools.Owner is RibbonGroup == false &&
                 tools.Owner is ApplicationMenuArea == false &&
                 tools.Owner is UltraToolbarBase == false))
            {
                throw new ArgumentException(Properties.Resources.InvalidToolsCollectionForElements, "tools");
            }

            if (tools.ToolbarsManager == null)
            {
                throw new ArgumentException(Properties.Resources.ToolsCollectionNotPartOfManager, "tools");
            }

            if (tools.Owner is PopupMenuTool)
            {
                this.toolsAdapter = GetMenuToolsAdapter(tools);
            }
            else if (tools.Owner is RibbonGroup)
            {
                this.toolsAdapter = GetRibbonGroupToolsAdapter(tools);
            }
            else if (tools.Owner is ApplicationMenuArea)
            {
                string area = ((ApplicationMenuArea)tools.Owner).ApplicationMenu.ToolAreaLeft.Equals(tools.Owner)
                                        ? ApplicationMenuAreaLeft
                                        : ApplicationMenuAreaRight;

                this.toolsAdapter = GetApplicationMenuToolsAdapter(tools, area);
            }
            else if (tools.Owner is ApplicationMenuFooterToolbar)
            {
                this.toolsAdapter = GetApplicationMenuToolsAdapter(tools, ApplicationMenuAreaFooter);
            }
            else if (tools.Owner is QuickAccessToolbar)
            {
                this.toolsAdapter = GetApplicationMenuToolsAdapter(tools, SpecialToolbarQuickAccessToolbar);
            }
            else if (tools.Owner is MiniToolbar)
            {
                this.toolsAdapter = GetApplicationMenuToolsAdapter(tools, SpecialToolbarMiniToolbar);
            }
            else if (tools.Owner is RibbonTabItemToolbar)
            {
                this.toolsAdapter = GetApplicationMenuToolsAdapter(tools, SpecialToolbarTabItemToolbar);
            }
            else
            {
                this.toolsAdapter = GetToolbarToolsAdapter(tools);
            }
        }
        private static ToolsCollectionAdapterImpl GetToolsAdapter(ToolsCollectionBase tools, Dictionary <ToolsCollectionKey, ToolsCollectionAdapterImpl> adapters, string ownerKey)
        {
            ToolsCollectionKey         key = new ToolsCollectionKey(tools.ToolbarsManager, ownerKey);
            ToolsCollectionAdapterImpl collectionAdapter;

            if (adapters.TryGetValue(key, out collectionAdapter) == false)
            {
                collectionAdapter = new ToolsCollectionAdapterImpl(tools);
                adapters.Add(key, collectionAdapter);
            }

            return(collectionAdapter);
        }
            internal ToolsCollectionAdapterImpl(ToolsCollectionBase tools)
            {
                // for a menu, store the tools collection of the root tool
                // in case the instance we were created for has been removed.
                if (tools.Owner is PopupMenuTool)
                {
                    PopupMenuTool menu = tools.Owner as PopupMenuTool;
                    tools = ((PopupMenuTool)menu.SharedProps.RootTool).Tools;
                }

                this.tools   = new WeakReference(tools);
                this.manager = new WeakReference(tools.ToolbarsManager);
            }
        private static ToolsCollectionAdapterImpl GetRibbonGroupToolsAdapter(ToolsCollectionBase tools)
        {
            Debug.Assert(tools.Owner is RibbonGroup, "Unexpected owner type.");

            RibbonGroup        group  = (RibbonGroup)tools.Owner;
            ToolsCollectionKey tabKey = new ToolsCollectionKey(tools.ToolbarsManager, group.Tab.Key);
            Dictionary <ToolsCollectionKey, ToolsCollectionAdapterImpl> groupsCollectionAdapters;

            if (ribbonGroupToolsAdapters.TryGetValue(tabKey, out groupsCollectionAdapters) == false)
            {
                groupsCollectionAdapters = new Dictionary <ToolsCollectionKey, ToolsCollectionAdapterImpl>();
                ribbonGroupToolsAdapters.Add(tabKey, groupsCollectionAdapters);
            }

            return(GetToolsAdapter(tools, groupsCollectionAdapters));
        }
示例#5
0
 private void removeButtonBeforeReadd(ToolsCollectionBase tools, ButtonTool buttonTool)
 {
     int iIndex = tools.IndexOf(buttonTool.Key);
     if (iIndex != -1)
         tools.RemoveAt(iIndex);
 }
        private static ToolsCollectionAdapterImpl GetToolsAdapter(ToolsCollectionBase tools, Dictionary <ToolsCollectionKey, ToolsCollectionAdapterImpl> adapters)
        {
            Debug.Assert(tools.Owner is KeyedSubObjectBase, "Unexpected owner type.");

            return(GetToolsAdapter(tools, adapters, ((KeyedSubObjectBase)tools.Owner).Key));
        }
 private static ToolsCollectionAdapterImpl GetSpecialToolbarToolsAdapter(ToolsCollectionBase tools, string key)
 {
     return(GetToolsAdapter(tools, specialToolbarAdapters, key));
 }
 private static ToolsCollectionAdapterImpl GetApplicationMenuToolsAdapter(ToolsCollectionBase tools, string key)
 {
     return(GetToolsAdapter(tools, applicationMenuAdapters, key));
 }
 private static ToolsCollectionAdapterImpl GetToolbarToolsAdapter(ToolsCollectionBase tools)
 {
     return(GetToolsAdapter(tools, toolbarToolsAdapters));
 }
示例#10
0
 public CommandBarItemCollection(ToolsCollectionBase decoratedItem)
 {
     this.decoratedItem = decoratedItem;
 }
示例#11
0
 /// <summary>
 /// Internal inherited method for initializing the tool when de-serialization completes.
 /// Automatically called by toolbars manager.
 /// </summary>
 protected override void Initialize(ToolsCollectionBase parentCollection)
 {
     // Let the base do its processing.
     base.Initialize(parentCollection);
 }