示例#1
0
        public void RemoveMessenger(Messenger focusedMessenger)
        {
            MessengerCache.Remove(MessengerCache.SingleOrDefault(i => i.Id == focusedMessenger.Id));

            if (DisplayedMessengers.Count() == 0)
            {
                if (IsPreviousPageButtonEnabled)
                {
                    PreviousPage();
                    return;
                }
                else if (IsMoveUpButtonEnabled)
                {
                    MoveUpALevel();
                    return;
                }
            }

            if (focusedMessenger.Id == ParentMessenger.Id)
            {
                MoveUpALevel();
                return;
            }

            //Move the last element from tha cache to the displayed messengers if needed.
            int maxElementCountOnAPage = MaxColumnCount * MaxRowCount;

            if (DisplayedMessengers.Count() < maxElementCountOnAPage && IsNextPageButtonEnabled)
            {
                int indexTo = CurrentPageNumber * maxElementCountOnAPage;
                DisplayedMessengers.Add(MessengerCache[indexTo - 1]);
            }
            NextPageButtonStateCalculator();
        }
示例#2
0
 public void NextPageButtonStateCalculator()
 {
     if (MessengerCache.Count() > CurrentPageNumber * (MaxColumnCount * MaxRowCount))
     {
         IsNextPageButtonEnabled = true;
     }
     else
     {
         IsNextPageButtonEnabled = false;
     }
 }
示例#3
0
        private void LoadMessengers()
        {
            int maxElementCountOnAPage = MaxColumnCount * MaxRowCount;
            int indexFrom = (CurrentPageNumber - 1) * maxElementCountOnAPage;
            int indexTo   = CurrentPageNumber * maxElementCountOnAPage;

            DisplayedMessengers.Clear();
            for (; (indexFrom < indexTo && indexFrom < MessengerCache.Count()); indexFrom++)
            {
                DisplayedMessengers.Add(MessengerCache[indexFrom]);
            }
            CalculateButtonStates();
        }