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); }
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); }
public IPanelStatePage CreatePanelStatePage(string name) { PanelStatePage page = new PanelStatePage(this, name); AddPanelStatePage(page, -1); return(page); }
public void DeletePanelStatePage(Guid pageGuid) { PanelStatePage page = GetPanelStatePage(pageGuid) as PanelStatePage; if (page != null) { if (ParentDocument != null) { page.OnDeleteFromDocument(); } _states.Remove(page); } }
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; } } } }
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(); } }