public void Test0() { var help = new HelpWithScroll<int>(); Assert.Throws<ArgumentOutOfRangeException>(() => { help.NumberOfItemsToBeShown = 0; }); Assert.AreEqual(10, help.NumberOfItemsToBeShown); help.NumberOfItemsToBeShown = 1; Assert.AreEqual(1, help.NumberOfItemsToBeShown); var items = new [] { 1, 2, }; help.Items = items; Assert.AreEqual(0, help.NumberOfUpperItems); Assert.AreEqual(1, help.NumberOfLowerItems); CollectionAssert.AreEqual(new [] { 1, }, help.GetItemsToBeShown()); Assert.Throws<ArgumentOutOfRangeException>(() => { help.ScrollDown(0); }); Assert.Throws<ArgumentOutOfRangeException>(() => { help.ScrollUp(0); }); var count = 0; help.UpdateScreen += (sender, e) => { count++; }; Assert.AreEqual(0, count); help.ScrollDown(10); Assert.AreEqual(1, help.NumberOfUpperItems); Assert.AreEqual(0, help.NumberOfLowerItems); CollectionAssert.AreEqual(new [] { 2, }, help.GetItemsToBeShown()); Assert.AreEqual(1, count); Assert.True(help.NeedToShowButtonToScrollUp); Assert.False(help.NeedToShowButtonToScrollDown); help.ScrollDown(10); Assert.AreEqual(1, help.NumberOfUpperItems); Assert.AreEqual(0, help.NumberOfLowerItems); CollectionAssert.AreEqual(new [] { 2, }, help.GetItemsToBeShown()); Assert.AreEqual(1, count); Assert.True(help.NeedToShowButtonToScrollUp); Assert.False(help.NeedToShowButtonToScrollDown); help.ScrollUp(10); Assert.AreEqual(0, help.NumberOfUpperItems); Assert.AreEqual(1, help.NumberOfLowerItems); CollectionAssert.AreEqual(new [] { 1, }, help.GetItemsToBeShown()); Assert.AreEqual(2, count); Assert.False(help.NeedToShowButtonToScrollUp); Assert.True(help.NeedToShowButtonToScrollDown); help.ScrollUp(10); Assert.AreEqual(0, help.NumberOfUpperItems); Assert.AreEqual(1, help.NumberOfLowerItems); CollectionAssert.AreEqual(new [] { 1, }, help.GetItemsToBeShown()); Assert.AreEqual(2, count); Assert.False(help.NeedToShowButtonToScrollUp); Assert.True(help.NeedToShowButtonToScrollDown); var help2 = new HelpWithScroll<int>(99); Assert.AreEqual(99, help2.NumberOfItemsToBeShown); }
public override void UpdateItemsToBeDrawn() { _tutor.もっとやる係数を適正値に修正(); var currentItemInfo = SaveCurrentItem(); Items.Clear(); CurrentItem = null; var userInfo = Window.EPuzzleData.CurrentUserInfo; var chumonButtonBox = new DrawingObjectContainer() { Position = DrawingObjectPosition.Absolute, Left = 300, Top = 60, }; Items.Add(chumonButtonBox); var buttonColor = Color.FromArgb(0xff, 0x00, 0x00, 0x80); var buttonBackColor = Color.FromArgb(0xff, 0xb0, 0xc4, 0xde); var chumonButtonHeight = 36; var chumonButtonWidth = 714; _helpWithScroll = GetScrollHelper(_sortType); _helpWithScroll.Items = GetChumons(_tutor, _sortType); foreach (var chumon in _helpWithScroll.GetItemsToBeShown()) { var chumonButton = new ChumonButton(userInfo, chumon, true) { Color = buttonColor, BackColor = buttonBackColor, Width = chumonButtonWidth, Height = chumonButtonHeight, }; chumonButtonBox.Items.Add(chumonButton); } if (_helpWithScroll.NeedToShowButtonToScrollUp) { var upButton = new EigoTestButtonItem() { Position = DrawingObjectPosition.Absolute, Left = DrawingObjectRoot.Width - (80 + 10), Top = 15, Width = 80, Height = 40, Text = "↑ " + _helpWithScroll.NumberOfUpperItems, Name = "upButton", IsVisible = true, IsClickable = true, }; Items.Add(upButton); // upButton.水平方向に中央揃え(); } if (_helpWithScroll.NeedToShowButtonToScrollDown) { var downButton = new EigoTestButtonItem() { Position = DrawingObjectPosition.Absolute, Left = DrawingObjectRoot.Width - (80 + 10), Top = DrawingObjectRoot.Height - (40 + 10), Width = 80, Height = 40, Text = "↓ " + _helpWithScroll.NumberOfLowerItems, Name = "downButton", IsVisible = true, IsClickable = true, }; Items.Add(downButton); // downButton.水平方向に中央揃え(); } var xxx = !chumonButtonBox.Items.Any(); var mottoyaruButton = new EigoTestButtonItem() { Position = DrawingObjectPosition.Absolute, Left = 10, Top = 500, Width = 160, Height = 40, Text = string.Format("もっとやる ({0}回目)", もっとやる係数), Name = "mottoyaruButton", IsVisible = xxx, IsClickable = xxx, }; Items.Add(mottoyaruButton); /* var orderByGradeStringsButton = new EigoTestButtonItem() { Position = DrawingObjectPosition.Absolute, Left = 854, Top = 10, Width = 160, Height = 40, Name = "orderByGradeStringsButton", Text = OrderByGradeStrings ? "最新の成績順" : "復習猶予期間順", IsVisible = true, IsClickable = true, }; Items.Add(orderByGradeStringsButton);*/ var byGracePriodButton = new EigoTestButtonItem() { Position = DrawingObjectPosition.Absolute, Left = 300, Top = 15, Width = 160, Height = 40, Name = "byGracePriodButton", Text = "猶予順", IsVisible = true, IsClickable = TutorStateSortType.GracePriod != _sortType, ChangeColorWhenUnclickable = true, }; Items.Add(byGracePriodButton); var byDateYouDidThemButton = new EigoTestButtonItem() { Position = DrawingObjectPosition.Absolute, Left = 465, Top = 15, Width = 160, Height = 40, Name = "byDateYouDidThemButton", Text = "試験順", IsVisible = true, IsClickable = TutorStateSortType.DateYouDidThem != _sortType, ChangeColorWhenUnclickable = true, }; Items.Add(byDateYouDidThemButton); var byGradeButton = new EigoTestButtonItem() { Position = DrawingObjectPosition.Absolute, Left = 630, Top = 15, Width = 160, Height = 40, Name = "byGradeButton", Text = "成績順", IsVisible = true, IsClickable = TutorStateSortType.Grade != _sortType, ChangeColorWhenUnclickable = true, }; Items.Add(byGradeButton); var backToStartGameStateButton = new EigoTestButtonItem() { Position = DrawingObjectPosition.Absolute, Left = 10, Top = 10, Width = 160, Height = 40, Name = "backToStartGameStateButton", Text = "タイトルに戻る", IsVisible = true, IsClickable = true, }; Items.Add(backToStartGameStateButton); Items.Add(CreateLabelToShowNumberOfQuestionsThatHaveBeenFinished()); Items.Add(_kirokuBox); RestoreCurrentItem(currentItemInfo); if (null == CurrentItem) { CurrentItem = GetAllItems().OfType<ChumonButton>().FirstOrDefault(); } }