Esempio n. 1
0
 public void ReadPageFile(String filePath, out List <List <PageButtonModel> > pageModes)
 {
     pageModes = new List <List <PageButtonModel> >();
     foreach (XElement element in XDocument.Load(filePath).Element("Page").Elements("Buttons"))
     {
         List <PageButtonModel> _mButtons = new List <PageButtonModel>();
         foreach (XElement _element in element.Elements("Button"))
         {
             PageButtonModel model = new PageButtonModel();
             XElement        xDown = _element.Element("Down");
             model._down._goto = xDown.Attribute("goto").Value;
             model._down._bpm  = xDown.Attribute("bpm").Value;
             XElement xLoop = _element.Element("Loop");
             model._loop._goto = xLoop.Attribute("goto").Value;
             model._loop._bpm  = xLoop.Attribute("bpm").Value;
             XElement xUp = _element.Element("Up");
             model._up._goto = xUp.Attribute("goto").Value;
             model._up._bpm  = xUp.Attribute("bpm").Value;
             _mButtons.Add(model);
         }
         pageModes.Add(_mButtons);
     }
 }
Esempio n. 2
0
        public void ReadPageFile(String filePath, out List <List <PageButtonModel> > pageModes)
        {
            pageModes = new List <List <PageButtonModel> >();
            foreach (XElement element in XDocument.Load(filePath).Element("Page").Elements("Buttons"))
            {
                List <PageButtonModel> _mButtons = new List <PageButtonModel>();
                foreach (XElement _element in element.Elements("Button"))
                {
                    PageButtonModel model = new PageButtonModel();
                    XElement        xDown = _element.Element("Down");
                    {
                        foreach (var xEdit in xDown.Elements())
                        {
                            model._down.OperationModels.Add(XNameToModel(xEdit));
                        }
                    }
                    XElement xLoop = _element.Element("Loop");
                    {
                        foreach (var xEdit in xLoop.Elements())
                        {
                            model._loop.OperationModels.Add(XNameToModel(xEdit));
                        }
                    }

                    XElement xUp = _element.Element("Up");
                    {
                        foreach (var xEdit in xUp.Elements())
                        {
                            model._up.OperationModels.Add(XNameToModel(xEdit));
                        }
                    }
                    _mButtons.Add(model);
                }
                pageModes.Add(_mButtons);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 產生頁碼
        /// </summary>
        /// <param name="model">頁數資料</param>
        /// <param name="buttonCount">按鈕最大數量</param>
        /// <param name="pageType">分頁類型</param>
        /// <returns></returns>
        public static List <PageButtonResultModel> SetPageButton(PageButtonModel model)
        {
            var resut = new List <PageButtonResultModel>();

            //button size
            int size = model.PageCount > model.ButtonMaxSize ? model.ButtonMaxSize : model.PageCount;
            //let current page inside the list
            int i = 1;


            //display all page
            if (model.PageType == PageType.Number)
            {
                size = model.PageCount;
            }
            //move range << >>
            else if (model.PageCount > model.ButtonMaxSize)
            {
                int move = size / 2; // 5/3=2

                // -5 -4 -3 -2 -1 end
                if (model.CurrentPage + move >= model.PageCount)
                {
                    i = model.PageCount - model.ButtonMaxSize + 1;
                }
                // -2 -1 curent +1 +2
                else if (model.CurrentPage - move >= 1)
                {
                    i = model.CurrentPage - move;
                }
            }

            //---------------

            //first
            if (model.PageType == PageType.All)
            {
                resut.Add(new PageButtonResultModel {
                    Title = "First", Name = model.FirstText, Page = 1
                });
            }

            //previous
            if (model.PageType == PageType.PreNext ||
                model.PageType == PageType.Number_PreNext ||
                model.PageType == PageType.All ||
                (model.PageType == PageType.Number_PreNextAuto && model.CurrentPage != 1))
            {
                int page = model.CurrentPage - 1;
                page = (page < 1 ? 1 : page); //min = 1
                resut.Add(new PageButtonResultModel {
                    Title = "Previous", Name = model.PreviousText, Page = page
                });
            }

            //page
            if (model.PageType != PageType.PreNext && model.PageType != PageType.Next)
            {
                while (size-- > 0)
                {
                    resut.Add(new PageButtonResultModel
                    {
                        Title     = i.ToString(),
                        Name      = i.ToString(),
                        Page      = i,
                        IsCurrent = i == model.CurrentPage
                    });
                    i++;
                }
            }

            //next
            if (model.PageType == PageType.PreNext ||
                (model.PageType == PageType.Next && model.PageCount > 1 && model.CurrentPage != model.PageCount) ||
                model.PageType == PageType.Number_PreNext ||
                model.PageType == PageType.All ||
                (model.PageType == PageType.Number_PreNextAuto && model.PageCount > 1 && model.CurrentPage != model.PageCount))
            {
                int page = model.CurrentPage + 1;
                page = (page > model.PageCount ? model.PageCount : page); //max = pageCount
                resut.Add(new PageButtonResultModel {
                    Title = "Next", Name = model.NextText, Page = page
                });
            }

            //last
            if (model.PageType == PageType.All)
            {
                resut.Add(new PageButtonResultModel {
                    Title = "Last", Name = model.LastText, Page = model.PageCount
                });
            }

            return(resut);
        }