Ejemplo n.º 1
0
        private void btnNextPage_Click(object sender, EventArgs e)
        {
            BLIO.Log("btnNextPage_Click");
            List <Reminder> reminders = BLReminder.GetReminders().OrderBy(r => Convert.ToDateTime(r.Date.Split(',')[0])).Where(r => r.Enabled == 1).Where(r => r.Hide == 0).ToList();

            reminders.AddRange(BLReminder.GetReminders().OrderBy(r => Convert.ToDateTime(r.Date.Split(',')[0])).Where(r => r.Enabled == 0).Where(r => r.Hide == 0));
            //^ All reminders in one list with the disabled ones at the end of the list


            if ((pageNumber * 7) + 1 > reminders.Count)
            {
                return; //No reminders left
            }
            int reminderItemCounter = 0;

            for (int i = pageNumber * 7; i < (pageNumber * 7) + 7; i++)
            {
                if (reminders.Count - 1 >= i) //Safely within index numbers
                {
                    //Get the user control item from the panel. There's 7 user controls in the panel, so we have another counter for those
                    UCReminderItem itm = (UCReminderItem)pnlReminders.Controls[reminderItemCounter];
                    itm.Visible = true;
                    //Update the reminder object inside the user control, that's waay faster than removing and re-drawing a new control.
                    itm.Reminder = reminders[i];
                }
                else //Fill all remaining controls that can't be filled with reminders with "empty", since there are no reminders left
                {
                    for (int ii = reminderItemCounter; ii < 7; ii++)
                    {
                        ((UCReminderItem)pnlReminders.Controls[ii]).Reminder = null;
                    }
                }
                reminderItemCounter++;
            }

            pageNumber++;
            if ((pageNumber * 7) + 1 > reminders.Count)
            {
                btnNextPage.Iconimage = Properties.Resources.NextGray1;
            }
            else
            {
                btnNextPage.Iconimage = Properties.Resources.NextWhite;
            }

            if (pageNumber > 1)
            {
                btnPreviousPage.Iconimage = Properties.Resources.PreviousWhite;
            }

            Form1.Instance.UpdatePageNumber(pageNumber);
        }
Ejemplo n.º 2
0
        private void AddRemindersToPanel()
        {
            Point          loc = new Point(10, 10);
            UCReminderItem itm = null;

            foreach (Reminder rem in BLReminder.GetReminders())
            {
                if (itm != null)
                {
                    loc = new Point(loc.X, (itm.Location.Y + itm.Height) + 10);
                }

                itm          = new UCReminderItem(rem);
                itm.Location = loc;
                pnlReminders.Controls.Add(itm);
            }
        }
Ejemplo n.º 3
0
        private void btnPreviousPage_Click(object sender, EventArgs e)
        {
            BLIO.Log("btnPreviousPage_Click");
            if (pageNumber <= 1) //Can't go to the previous page if we're on the first one
            {
                return;
            }

            List <Reminder> reminders = BLReminder.GetReminders().OrderBy(r => Convert.ToDateTime(r.Date.Split(',')[0])).Where(r => r.Enabled == 1).Where(r => r.Hide == 0).ToList();

            reminders.AddRange(BLReminder.GetReminders().OrderBy(r => Convert.ToDateTime(r.Date.Split(',')[0])).Where(r => r.Enabled == 0).Where(r => r.Hide == 0));
            //^ All reminders in one list with the disabled ones at the end of the list

            int reminderItemCounter = 0;

            for (int i = (pageNumber - 2) * 7; i < ((pageNumber - 2) * 7) + 7; i++)
            {
                if (reminders.Count - 1 >= i) //Safely within index numbers
                {
                    //Get the user control item from the panel. There's 7 user controls in the panel, so we have another counter for those
                    UCReminderItem itm = (UCReminderItem)pnlReminders.Controls[reminderItemCounter];
                    itm.Visible = true;
                    //Update the reminder object inside the user control, that's waay faster than removing and re-drawing a new control.
                    itm.Reminder = reminders[i];
                }

                reminderItemCounter++;

                if (reminderItemCounter == 7)
                {
                    break;
                }
            }

            pageNumber--;
            Form1.Instance.UpdatePageNumber(pageNumber);

            SetPageButtonIcons(reminders);
        }
Ejemplo n.º 4
0
        //Display changes on the current page. (For example a deleted or enabled/disabled reminder)
        public void UpdateCurrentPage()
        {
            List <Reminder> reminders = BLReminder.GetReminders().OrderBy(r => Convert.ToDateTime(r.Date.Split(',')[0])).Where(r => r.Enabled == 1).Where(r => r.Hide == 0).ToList();

            reminders.AddRange(BLReminder.GetReminders().OrderBy(r => Convert.ToDateTime(r.Date.Split(',')[0])).Where(r => r.Enabled == 0).Where(r => r.Hide == 0));
            //^ All reminders in one list with the disabled ones at the end of the list

startMethod:
            if ((pageNumber * 7) + 1 > reminders.Count)
            {
                btnNextPage.Iconimage = Properties.Resources.NextGray1;
            }
            else
            {
                btnNextPage.Iconimage = Properties.Resources.NextWhite;
            }


            int reminderItemCounter = 0;

            for (int i = (pageNumber - 1) * 7; i < ((pageNumber) * 7); i++)
            {
                if (reminders.Count - 1 >= i) //Safely within index numbers
                {
                    if (reminderItemCounter >= pnlReminders.Controls.Count)
                    {
                        return;
                    }

                    //Get the user control item from the panel. There's 7 user controls in the panel, so we have another counter for those
                    UCReminderItem itm = (UCReminderItem)pnlReminders.Controls[reminderItemCounter];
                    itm.Visible = true;
                    //Update the reminder object inside the user control, that's waay faster than removing and re-drawing a new control.
                    itm.UpdateReminder(reminders[i]);
                }
                else
                {
                    //User deleted a reminder, which was the last one out of the list from that page. Navigate to the previous page.
                    if (i % 7 == 0 && pageNumber > 1)
                    {
                        pageNumber--;
                        goto startMethod;
                    }

                    for (int ii = i; ii < 7; ii++)
                    {
                        if (ii >= pnlReminders.Controls.Count)
                        {
                            break;
                        }

                        UCReminderItem itm = (UCReminderItem)pnlReminders.Controls[ii];
                        itm.Visible = false;
                    }
                    break;
                }

                reminderItemCounter++;

                if (reminderItemCounter == 7)
                {
                    break;
                }
            }
            if (reminders.Count <= 7)
            {
                Form1.Instance.UpdatePageNumber(-1);
            }
            else
            {
                Form1.Instance.UpdatePageNumber(pageNumber);
            }

            if (GetInstance() != null)
            {
                GetInstance().tmrCheckReminder.Start();
            }


            //Change background if there are no reminders left
            if (BLReminder.GetReminders().Where(r => r.Hide == 0).ToList().Count == 0)
            {
                pnlReminders.BackgroundImage = Properties.Resources.NoReminders2;
            }
            else
            {
                pnlReminders.BackgroundImage = Properties.Resources.RemindMeGradient;
            }
        }
Ejemplo n.º 5
0
        //Display changes on the current page. (For example a deleted or enabled/disabled reminder)
        public void UpdateCurrentPage()
        {
            BLIO.Log("Starting UpdateCurrentPage()...");
            List <Reminder> reminders = BLReminder.GetReminders().OrderBy(r => Convert.ToDateTime(r.Date.Split(',')[0])).Where(r => r.Enabled == 1).Where(r => r.Hide == 0).ToList();

            reminders.AddRange(BLReminder.GetReminders().OrderBy(r => Convert.ToDateTime(r.Date.Split(',')[0])).Where(r => r.Enabled == 0).Where(r => r.Hide == 0));
            //^ All reminders in one list with the disabled ones at the end of the list
            BLIO.Log(reminders.Count + " reminders loaded");

startMethod:
            if ((pageNumber * 7) + 1 > reminders.Count)
            {
                btnNextPage.Iconimage = Properties.Resources.NextGray1;
            }
            else
            {
                btnNextPage.Iconimage = Properties.Resources.NextWhite;
            }

            int reminderItemCounter = 0;

            for (int i = (pageNumber - 1) * 7; i < ((pageNumber) * 7); i++)
            {
                if (reminders.Count - 1 >= i) //Safely within index numbers
                {
                    if (reminderItemCounter >= pnlReminders.Controls.Count)
                    {
                        return;
                    }

                    //Get the user control item from the panel. There's 7 user controls in the panel, so we have another counter for those
                    UCReminderItem itm = (UCReminderItem)pnlReminders.Controls[reminderItemCounter];
                    //Update the reminder object inside the user control, that's waay faster than removing and re-drawing a new control.
                    itm.Reminder = reminders[i];
                }
                else
                {
                    //User deleted a reminder, which was the last one out of the list from that page. Navigate to the previous page.
                    if (i % 7 == 0 && pageNumber > 1)
                    {
                        BLIO.Log("navigating to the previous page after deletion of an reminder...");
                        pageNumber--;
                        goto startMethod;
                    }

                    for (int ii = i; ii < 7; ii++)
                    {
                        if (ii >= pnlReminders.Controls.Count)
                        {
                            break;
                        }

                        UCReminderItem itm = (UCReminderItem)pnlReminders.Controls[ii];
                        itm.Reminder = null;
                    }

                    //This happens when an reminder has been deleted, and there are less than 7 reminders on that page. Empty out the remaining reminder items.
                    while (reminderItemCounter <= 6)
                    {
                        BLIO.Log("Detected the deletion of an reminder on the current page.");
                        //Get the user control item from the panel. There's 7 user controls in the panel, so we have another counter for those
                        UCReminderItem itm = (UCReminderItem)pnlReminders.Controls[reminderItemCounter];

                        if (itm.Reminder != null)
                        {
                            BLIO.Log("Emptying ReminderItem with ID " + itm.Reminder.Id);
                        }
                        //Update the reminder object inside the user control, that's waay faster than removing and re-drawing a new control.
                        itm.Reminder = null;

                        reminderItemCounter++;
                    }

                    break;
                }

                reminderItemCounter++;

                if (reminderItemCounter == 7)
                {
                    break;
                }
            }



            if (reminders.Count <= 7)
            {
                Form1.Instance.UpdatePageNumber(-1);
            }
            else
            {
                Form1.Instance.UpdatePageNumber(pageNumber);
            }

            if (Instance != null)
            {
                Instance.tmrCheckReminder.Start();
            }

            BLIO.Log("UpdateCurrentPage() completed.");
        }