protected virtual void UpdatePageViewItems(IRadPageViewProvider pageViewProvider)
        {
            this.suspendTabChanging = true;
            if (!(pageViewProvider is RadPageViewExplorerBarProvider))
            {
                GridTableElement childTableElement = this.CreateChildTableElement();
                if (this.GridViewElement.UseScrollbarsInHierarchy && !(pageViewProvider is RadPageViewStripProvider))
                {
                    childTableElement.StretchVertically = true;
                }
                this.pageViewElement.ContentArea.Children.Add((RadElement)childTableElement);
            }
            this.Children.Add((RadElement)this.pageViewElement);
            while (this.PageViewElement.Items.Count > 0)
            {
                this.PageViewElement.Items[0].RadPropertyChanging -= new RadPropertyChangingEventHandler(this.item_RadPropertyChanging);
                this.PageViewElement.Items[0].RadPropertyChanged  -= new RadPropertyChangedEventHandler(this.item_RadPropertyChanged);
                this.PageViewElement.RemoveItem(this.PageViewElement.Items[0]);
            }
            RadPageViewItem selectedItem = (RadPageViewItem)null;

            if (this.pageViewElement is RadPageViewStripElement || this.pageViewElement is RadPageViewOutlookElement)
            {
                for (int index = 0; index < this.HierarchyRow.Views.Count; ++index)
                {
                    if (this.HierarchyRow.Views[index].ViewTemplate != this.ViewTemplate)
                    {
                        RadPageViewItem pageViewItem = this.CreatePageViewItem(pageViewProvider, this.HierarchyRow.Views[index]);
                        this.pageViewElement.AddItem(pageViewItem);
                        if (pageViewItem.Tag == this.HierarchyRow.ActiveView)
                        {
                            selectedItem = pageViewItem;
                        }
                    }
                }
            }
            else
            {
                for (int index = this.HierarchyRow.Views.Count - 1; index >= 0; --index)
                {
                    if (this.HierarchyRow.Views[index].ViewTemplate != this.ViewTemplate)
                    {
                        RadPageViewItem pageViewItem = this.CreatePageViewItem(pageViewProvider, this.HierarchyRow.Views[index]);
                        this.pageViewElement.AddItem(pageViewItem);
                        if (pageViewItem.Tag == this.HierarchyRow.ActiveView)
                        {
                            selectedItem = pageViewItem;
                        }
                    }
                }
            }
            this.UpdateSelectedPageViewItem(selectedItem);
            RadPageViewOutlookElement pageViewElement = this.pageViewElement as RadPageViewOutlookElement;

            pageViewElement?.HideItems(pageViewElement.Items.Count);
            this.suspendTabChanging = false;
        }
        protected virtual RadPageViewItem CreatePageViewItem(
            IRadPageViewProvider pageViewProvider,
            GridViewInfo viewInfo)
        {
            RadPageViewItem pageViewItem = pageViewProvider.CreatePageViewItem((object)this);
            string          str          = "table";

            if (!string.IsNullOrEmpty(viewInfo.ViewTemplate.DataMember))
            {
                str = viewInfo.ViewTemplate.DataMember;
            }
            if (!string.IsNullOrEmpty(viewInfo.ViewTemplate.Caption))
            {
                str = viewInfo.ViewTemplate.Caption;
            }
            pageViewItem.Tag  = (object)viewInfo;
            pageViewItem.Text = str;
            pageViewItem.RadPropertyChanging += new RadPropertyChangingEventHandler(this.item_RadPropertyChanging);
            pageViewItem.RadPropertyChanged  += new RadPropertyChangedEventHandler(this.item_RadPropertyChanged);
            RadPageViewExplorerBarItem viewExplorerBarItem = pageViewItem as RadPageViewExplorerBarItem;

            if (viewExplorerBarItem != null)
            {
                GridTableElement viewUiElement = (GridTableElement)viewInfo.ViewTemplate.ViewDefinition.CreateViewUIElement(viewInfo);
                viewUiElement.ViewElement.StretchVertically = false;
                viewUiElement.StretchVertically             = false;
                viewExplorerBarItem.IsExpanded = true;
                viewExplorerBarItem.AssociatedContentAreaElement = new RadPageViewContentAreaElement();
                RadPageViewExplorerBarElement pageViewElement = (RadPageViewExplorerBarElement)this.pageViewElement;
                if (pageViewElement != null && pageViewElement.StackPosition == StackViewPosition.Left)
                {
                    viewUiElement.StretchHorizontally = false;
                    viewExplorerBarItem.AssociatedContentAreaElement.StretchHorizontally = false;
                }
                else
                {
                    viewUiElement.StretchHorizontally = true;
                    viewExplorerBarItem.AssociatedContentAreaElement.StretchHorizontally = true;
                }
                this.pageViewElement.Children.Add((RadElement)viewExplorerBarItem.AssociatedContentAreaElement);
                viewExplorerBarItem.AssociatedContentAreaElement.Children.Add((RadElement)viewUiElement);
                if (this.rowView == null)
                {
                    this.rowView = viewUiElement;
                }
                viewUiElement.Initialize(this.GridViewElement, viewInfo);
                IGridRowLayout rowLayout = ((TableViewDefinition)viewInfo.ViewTemplate.ViewDefinition).CreateRowLayout();
                rowLayout.Initialize(viewUiElement);
                viewUiElement.ViewElement.RowLayout = rowLayout;
            }
            return(pageViewItem);
        }
        protected override RadPageViewItem CreatePageViewItem(IRadPageViewProvider pageViewProvider, GridViewInfo viewInfo)
        {
            RadPageViewItem item = base.CreatePageViewItem(pageViewProvider, viewInfo);

            RadPageViewExplorerBarItem explorerBarItem = item as RadPageViewExplorerBarItem;

            if (explorerBarItem != null)
            {
                explorerBarItem.AssociatedContentAreaElement.Children[0].MaxSize = new System.Drawing.Size(0, 152);
            }

            return(item);
        }
 public GridDetailViewCellElement(GridViewColumn column, GridRowElement row)
     : base(column, row)
 {
     if (this.ViewTemplate.Templates.Count > 1 || row.ViewTemplate.ShowChildViewCaptions)
     {
         IRadPageViewProvider pageViewProvider = this.CreatePageViewProvider();
         this.pageViewElement = this.CreatePageViewElement(pageViewProvider);
         this.UpdateTabsPosition();
         this.UpdatePageViewItems(pageViewProvider);
     }
     else
     {
         this.Children.Add((RadElement)this.CreateChildTableElement());
     }
 }
        protected virtual RadPageViewElement CreatePageViewElement(
            IRadPageViewProvider pageViewProvider)
        {
            RadPageViewElement pageViewElement = pageViewProvider.CreatePageViewElement((object)this);

            pageViewElement.StretchVertically             = false;
            pageViewElement.ContentArea.StretchVertically = false;
            RadPageViewExplorerBarElement explorerBarElement = pageViewElement as RadPageViewExplorerBarElement;

            if (explorerBarElement != null)
            {
                explorerBarElement.ExpandedChanged += new EventHandler <RadPageViewExpandedChangedEventArgs>(this.explorerBarElement_ExpandedChanged);
            }
            pageViewElement.UpdateSelectedItemContent = false;
            return(pageViewElement);
        }
        protected virtual IRadPageViewProvider CreatePageViewProvider()
        {
            IRadPageViewProvider pageViewProvider = this.TableElement.PageViewProvider;

            if (pageViewProvider == null)
            {
                switch (this.TableElement.PageViewMode)
                {
                case PageViewMode.Strip:
                    return((IRadPageViewProvider) new RadPageViewStripProvider());

                case PageViewMode.Stack:
                    return((IRadPageViewProvider) new RadPageViewStackProvider());

                case PageViewMode.Outlook:
                    return((IRadPageViewProvider) new RadPageViewOutlookProvider());

                case PageViewMode.ExplorerBar:
                    return((IRadPageViewProvider) new RadPageViewExplorerBarProvider());
                }
            }
            return(pageViewProvider);
        }