Example #1
0
        public void DeleteAdaptiveView(IAdaptiveView view)
        {
            if (view == _base)
            {
                throw new ArgumentException("Cannot delete Base adaptive view!");
            }

            AdaptiveView viewToDelete = view as AdaptiveView;

            if (viewToDelete != null)
            {
                AdaptiveView parent = viewToDelete.ParentView as AdaptiveView;
                if (parent != null)
                {
                    // Remove this view from parent
                    parent.RemoveChildView(viewToDelete);

                    // Add child view to new parent
                    foreach (AdaptiveView childView in viewToDelete.ChildViews)
                    {
                        if (childView != null)
                        {
                            parent.AddChildView(childView);
                        }
                    }
                }

                // Remove this view from views
                _views.Remove(viewToDelete);

                _document.OnDeleteAdaptiveView(viewToDelete);
            }
        }
Example #2
0
        public void ChangeParent(IAdaptiveView view, IAdaptiveView newParent)
        {
            if (view == _base)
            {
                throw new ArgumentException("Cannot change parent of Base adaptive view!");
            }

            AdaptiveView viewToChange  = view as AdaptiveView;
            AdaptiveView newParentView = newParent as AdaptiveView;

            if (viewToChange == null)
            {
                throw new ArgumentNullException("view");
            }

            if (newParentView == null)
            {
                throw new ArgumentNullException("newParent");
            }

            // Remove view from old parent
            AdaptiveView oldParentView = viewToChange.ParentView as AdaptiveView;

            if (oldParentView != null && oldParentView != newParentView)
            {
                oldParentView.RemoveChildView(viewToChange);
            }

            newParentView.AddChildView(viewToChange);

            _document.OnChangeAdaptiveViewParent(viewToChange, oldParentView);
        }
Example #3
0
        public IMasterStyle GetMasterStyle(Guid viewGuid)
        {
            if (viewGuid == Guid.Empty)
            {
                return(null);
            }

            // If it is base view.
            if (ParentDocument != null && ParentDocument.IsOpened &&
                viewGuid == ParentDocument.AdaptiveViewSet.Base.Guid)
            {
                return(_masterStyle);
            }
            else
            {
                // If view style already exists, just return it.
                if (_masterStyles.Contains(viewGuid))
                {
                    return(_masterStyles[viewGuid]);
                }
                else if (ParentDocument != null && ParentDocument.IsOpened)
                {
                    // Add view style if the adaptive view is in document adaptive view set.
                    IAdaptiveView view = ParentDocument.AdaptiveViewSet.AdaptiveViews[viewGuid];
                    if (view != null)
                    {
                        return(AddMasterStyle(view as AdaptiveView));
                    }
                }

                return(null);
            }
        }
Example #4
0
        public override IRegionStyle GetRegionStyle(Guid viewGuid)
        {
            if (viewGuid == Guid.Empty)
            {
                return(null);
            }

            if (ParentDocument != null && ParentDocument.IsOpened &&
                viewGuid == ParentDocument.AdaptiveViewSet.Base.Guid)
            {
                return(RegionStyle);
            }
            else
            {
                if (GroupStyles.ContainsKey(viewGuid))
                {
                    return(GroupStyles[viewGuid]);
                }
                else if (ParentDocument != null && ParentDocument.IsOpened)
                {
                    IAdaptiveView view = ParentDocument.AdaptiveViewSet.AdaptiveViews[viewGuid];
                    if (view != null)
                    {
                        GroupStyle style = new GroupStyle(this, viewGuid);
                        GroupStyles[viewGuid] = style;
                        return(style);
                    }
                }

                return(null);
            }
        }
        private void LoadAdaptiveView(AdaptivVieweNode parent, IAdaptiveView curView)
        {
            //==============load current view================//

            //Set all Condition to LessOrEqual
            if (curView.Condition != AdaptiveViewCondition.LessOrEqual)
            {
                curView.Condition = AdaptiveViewCondition.LessOrEqual;
            }
            AdaptivVieweNode adaptive = new AdaptivVieweNode(curView);

            adaptive.ParentNode = parent;

            if (parent != null)
            {
                parent.Add(adaptive);
            }

            _adaptiveModel.AdaptiveViewsList.Add(adaptive);

            //==============load children views================//
            foreach (IAdaptiveView view in curView.ChildViews)
            {
                LoadAdaptiveView(adaptive, view);
            }
        }
Example #6
0
        private void LoadAdaptiveFromDocument(AdaptivVieweNode parentNode, IAdaptiveView parentView)
        {
            foreach (IAdaptiveView view in parentView.ChildViews)
            {
                AdaptivVieweNode node = new AdaptivVieweNode(view);
                parentNode.Add(node);

                node.ParentNode = parentNode;
                LoadAdaptiveFromDocument(node, view);
            }
        }
Example #7
0
        public AdaptivVieweNode(IAdaptiveView view)
        {
            _condition = AdaptiveViewCondition.LessOrEqual;
            Children   = new ObservableCollection <AdaptivVieweNode>();

            if (view != null)
            {
                AdaptiveView = view;
                _name        = view.Name;
                _condition   = view.Condition;
                _description = view.Description;
                _width       = view.Width;
                _height      = view.Height;
                _isChecked   = false;
            }
        }
Example #8
0
        public IAdaptiveView CreateAdaptiveView(string name, IAdaptiveView parent)
        {
            AdaptiveView parentView = parent as AdaptiveView;

            if (parentView == null)
            {
                throw new ArgumentNullException("parent");
            }

            AdaptiveView view = new AdaptiveView(this, name);

            parentView.AddChildView(view);
            _views.Add(view);

            _document.OnAddAdaptiveView(view);

            return(view);
        }
Example #9
0
        public bool MoveAdaptiveViewTo(IAdaptiveView view, int index)
        {
            if (view == _base)
            {
                throw new ArgumentException("Cannot move base adaptive view!");
            }

            AdaptiveView viewToMove = view as AdaptiveView;
            AdaptiveView parentView = viewToMove.ParentView as AdaptiveView;

            if (parentView != null)
            {
                AdaptiveViews views = parentView.ChildViews as AdaptiveViews;
                if (views != null)
                {
                    return(views.MoveItemTo(viewToMove, index));
                }
            }

            return(false);
        }
Example #10
0
        private bool HasVisibleChildWidget(IGroup group, IAdaptiveView adaptiveView, bool recursive)
        {
            foreach (IWidget widget in group.Widgets)
            {
                IWidgetStyle style = widget.GetWidgetStyle(adaptiveView.Guid);
                if (style != null && style.IsVisible)
                {
                    return(true);
                }
            }

            if (recursive)
            {
                foreach (IGroup childGroup in group.Groups)
                {
                    return(HasVisibleChildWidget(childGroup, adaptiveView, recursive));
                }
            }

            return(false);
        }
Example #11
0
 public JsAdaptiveView(HtmlServiceProvider service, IAdaptiveView view)
 {
     _service = service;
     _view    = view;
 }
Example #12
0
        internal void PlaceMasterInternal(Master master, bool placeToChild)
        {
            if (master != null && !_masterGuidList.Contains(master.Guid) &&
                ParentDocument != null && ParentDocument.IsOpened)
            {
                _masterGuidList.Add(master.Guid);

                if (_masters != null)
                {
                    _masters.Add(master.Guid, master as Master);
                }

                // If this master is never placed in base view before.
                if (master.HasBeenPlacedInBaseView == false)
                {
                    // If this view is base view, set the flag
                    if (_viewGuid == ParentDocument.AdaptiveViewSet.Base.Guid)
                    {
                        master.HasBeenPlacedInBaseView = true;

                        // If the widget is not created in base view, set the create view style as the base view style.
                        // If the widget is IPageEmbeddedWidget, we don't update the child widgets style.
                        if (master.CreatedViewGuid != ParentDocument.AdaptiveViewSet.Base.Guid)
                        {
                            MasterStyle createdViewStyle = master.GetMasterStyle(master.CreatedViewGuid) as MasterStyle;
                            MasterStyle baseViewStyle    = master.MasterStyle as MasterStyle;
                            if (createdViewStyle != null)
                            {
                                Style.CopyStyle(createdViewStyle, baseViewStyle, null, null);
                            }
                        }
                    }
                }

                // Place to child page view.
                if (placeToChild)
                {
                    IAdaptiveView view = null;
                    if (_viewGuid == ParentDocument.AdaptiveViewSet.Base.Guid)
                    {
                        view = ParentDocument.AdaptiveViewSet.Base;
                    }
                    else
                    {
                        view = ParentDocument.AdaptiveViewSet.AdaptiveViews[_viewGuid];
                    }

                    if (view != null)
                    {
                        foreach (AdaptiveView childView in view.ChildViews)
                        {
                            PageView childPageView = ParentPage.PageViews[childView.Guid] as PageView;
                            if (childPageView != null)
                            {
                                childPageView.PlaceMasterInternal(master, true);
                            }
                        }
                    }
                }
            }
        }
Example #13
0
        internal void PlaceWidgetInternal(Widget widget, bool placeToChild)
        {
            if (widget != null && !_widgetGuidList.Contains(widget.Guid) &&
                ParentDocument != null && ParentDocument.IsOpened)
            {
                _widgetGuidList.Add(widget.Guid);

                if (_widgets != null)
                {
                    _widgets.Add(widget.Guid, widget as Widget);
                }

                // If this widget is never placed in base view before.
                if (widget.HasBeenPlacedInBaseView == false)
                {
                    // If this view is base view, set the flag
                    if (_viewGuid == ParentDocument.AdaptiveViewSet.Base.Guid)
                    {
                        widget.HasBeenPlacedInBaseView = true;

                        // If the widget is not created in base view, set the create view style as the base view style.
                        // If the widget is IPageEmbeddedWidget, we don't update the child widgets style.
                        if (widget.CreatedViewGuid != ParentDocument.AdaptiveViewSet.Base.Guid)
                        {
                            WidgetStyle createdViewStyle = widget.GetWidgetStyle(widget.CreatedViewGuid) as WidgetStyle;
                            WidgetStyle baseViewStyle    = widget.WidgetStyle as WidgetStyle;
                            if (createdViewStyle != null)
                            {
                                Style.CopyStyle(createdViewStyle, baseViewStyle, null, null);
                            }
                        }
                    }
                }

                // Place to child page view.
                if (placeToChild)
                {
                    IAdaptiveView view = null;
                    if (_viewGuid == ParentDocument.AdaptiveViewSet.Base.Guid)
                    {
                        view = ParentDocument.AdaptiveViewSet.Base;
                    }
                    else
                    {
                        view = ParentDocument.AdaptiveViewSet.AdaptiveViews[_viewGuid];
                    }

                    if (view != null)
                    {
                        foreach (AdaptiveView childView in view.ChildViews)
                        {
                            PageView childPageView = ParentPage.PageViews[childView.Guid] as PageView;
                            if (childPageView != null)
                            {
                                childPageView.PlaceWidgetInternal(widget, true);
                            }
                        }
                    }
                }
            }
        }
Example #14
0
 public JsGroupStyle(HtmlServiceProvider service, IGroup group, IAdaptiveView adaptiveView)
 {
     _service      = service;
     _group        = group;
     _adaptiveView = adaptiveView;
 }
Example #15
0
 public int IndexOf(IAdaptiveView view)
 {
     return(base.IndexOf(view as AdaptiveView));
 }