コード例 #1
0
ファイル: DynamicPanel.cs プロジェクト: naver/protonow
        public bool MovePanelStatePageTo(IPanelStatePage page, int index)
        {
            PanelStatePage pageToMove = page as PanelStatePage;

            if (pageToMove == null || pageToMove.ParentWidget != this)
            {
                throw new ArgumentException("Input PanelStatePage is invalid.");
            }

            if (_states.Contains(pageToMove))
            {
                int oldIndex = _states.IndexOf(pageToMove);

                if (oldIndex == index)
                {
                    return(true);
                }

                if (index >= 0 && index < _states.Count)
                {
                    _states.RemoveAt(oldIndex);
                    _states.Insert(index, pageToMove);
                    return(true);
                }
            }

            return(false);
        }
コード例 #2
0
ファイル: DynamicPanel.cs プロジェクト: naver/protonow
        public bool MovePanelStatePage(IPanelStatePage page, int delta)
        {
            PanelStatePage pageToMove = page as PanelStatePage;

            if (pageToMove == null || pageToMove.ParentWidget != this)
            {
                throw new ArgumentException("Input PanelStatePage is invalid.");
            }

            if (_states.Contains(pageToMove))
            {
                int index = _states.IndexOf(pageToMove);
                if ((delta < 0) && ((index + delta) >= 0))
                {
                    _states.RemoveAt(index);
                    _states.Insert(index + delta, pageToMove);
                    return(true);
                }

                if ((delta > 0) && ((index + delta) < _states.Count))
                {
                    _states.RemoveAt(index);
                    _states.Insert(index + delta, pageToMove);
                    return(true);
                }
            }

            return(false);
        }
コード例 #3
0
ファイル: DynamicPanel.cs プロジェクト: naver/protonow
        public IPanelStatePage CreatePanelStatePage(string name)
        {
            PanelStatePage page = new PanelStatePage(this, name);

            AddPanelStatePage(page, -1);

            return(page);
        }
コード例 #4
0
ファイル: DynamicPanel.cs プロジェクト: naver/protonow
        public void DeletePanelStatePage(Guid pageGuid)
        {
            PanelStatePage page = GetPanelStatePage(pageGuid) as PanelStatePage;

            if (page != null)
            {
                if (ParentDocument != null)
                {
                    page.OnDeleteFromDocument();
                }

                _states.Remove(page);
            }
        }
コード例 #5
0
ファイル: DynamicPanel.cs プロジェクト: naver/protonow
        internal override void LoadDataFromXml(XmlElement element)
        {
            base.LoadDataFromXml(element);

            LoadGuidFromChildElementInnerText("StartPanelStatePage", element, ref _startPageGuid);
            LoadBoolFromChildElementInnerText("IsCircular", element, ref _isCircular);
            LoadBoolFromChildElementInnerText("IsAutomatic", element, ref _isAutomatic);
            LoadIntFromChildElementInnerText("AutomaticIntervalTime", element, ref _automaticIntervalTime);
            LoadIntFromChildElementInnerText("DurationTime", element, ref _durationTime);
            LoadEnumFromChildElementInnerText <NavigationType>("NavigationType", element, ref _navigationType);
            LoadBoolFromChildElementInnerText("ShowAffordanceArrow", element, ref _showAffordanceArrow);
            LoadEnumFromChildElementInnerText <DynamicPanelViewMode>("ViewMode", element, ref _viewMode);
            LoadIntFromChildElementInnerText("PanelWidth", element, ref _panelWidth);
            LoadDoubleFromChildElementInnerText("LineWith", element, ref _lineWidth);

            XmlElement statesElement = element["States"];

            if (statesElement != null)
            {
                XmlNodeList childList = statesElement.ChildNodes;
                if (childList == null || childList.Count <= 0)
                {
                    return;
                }

                foreach (XmlElement childElement in childList)
                {
                    PanelStatePage page = new PanelStatePage(this, "");
                    page.PageData.Clear(); // Page data is cleared now.
                    page.LoadDataFromXml(childElement);
                    _states.Add(page);

                    if (_startPageGuid == page.Guid)
                    {
                        _startPanelStatePage = page;
                    }
                }
            }
        }
コード例 #6
0
ファイル: DynamicPanel.cs プロジェクト: naver/protonow
        public void AddPanelStatePage(IPanelStatePage page, int index)
        {
            // Only can add page which was created in this panel.
            PanelStatePage pageToAdd = page as PanelStatePage;

            if (pageToAdd == null || pageToAdd.ParentWidget != this)
            {
                throw new ArgumentException("Input PanelStatePage is invalid.");
            }

            if (index < 0 || index > _states.Count)
            {
                _states.Add(pageToAdd);
            }
            else
            {
                _states.Insert(index, pageToAdd);
            }

            if (ParentDocument != null)
            {
                pageToAdd.OnAddToDocument();
            }
        }