Пример #1
0
 public void OnPointerEnter(CalenderButton chosenCalenderButton, Calender calender)
 {
     if (chosenCalenderButton.CurrentState == CalenderButton.State.Normal && m_EndDate == null)
     {
         chosenCalenderButton.UpdateState(CalenderButton.State.Hover, calender.Date, m_StartDate, m_EndDate);
     }
 }
Пример #2
0
 public void OnCalenderRefreshed(DateTime calenderDate, CalenderButton calenderButton, DateTime buttonDate)
 {
     if (DateIsInCalenderMonth(calenderDate, buttonDate))
     {
         // single selection
         if (m_StartDate != null && m_StartDate == buttonDate && m_EndDate == null)
         {
             m_StartDate_SelectedBTN = calenderButton;
             calenderButton.UpdateState(CalenderButton.State.Selected, buttonDate, m_StartDate, m_EndDate);
         }
         // single selection but we also need to show highlight
         else if (m_StartDate != null && m_StartDate == buttonDate)
         {
             m_StartDate_SelectedBTN = calenderButton;
             calenderButton.UpdateState(CalenderButton.State.Selected, buttonDate, m_StartDate, m_EndDate);
         }
         // single 'end' selection
         else if (m_EndDate != null && m_EndDate == buttonDate && m_StartDate != null)
         {
             m_EndDate_SelectedBTN = calenderButton;
             calenderButton.UpdateState(CalenderButton.State.Selected, buttonDate, m_StartDate, m_EndDate);
         }
         else if (m_EndDate != null && m_EndDate == buttonDate)
         {
             m_EndDate_SelectedBTN = calenderButton;
             calenderButton.UpdateState(CalenderButton.State.Selected, buttonDate, m_StartDate, m_EndDate);
         }
     }
 }
Пример #3
0
 /// <summary>
 /// Generally called when the next month is shown on a calender
 /// </summary>
 public void OnCalenderRefreshed(DateTime calenderDate, CalenderButton calenderButton, DateTime buttonDate)
 {
     // single selection
     if (m_StartDate != null && m_StartDate == buttonDate && m_EndDate == null)
     {
         calenderButton.UpdateState(CalenderButton.State.Selected, buttonDate, m_StartDate, m_EndDate);
     }
     // single selection but we also need to show highlight
     else if (m_StartDate != null && m_StartDate == buttonDate)
     {
         calenderButton.UpdateState(CalenderButton.State.Selected, buttonDate, m_StartDate, m_EndDate);
         calenderButton.UpdateState(CalenderButton.State.Highlighted, buttonDate, m_StartDate, m_EndDate);
     }
     // single 'end' selection
     else if (m_EndDate != null && m_EndDate == buttonDate && m_StartDate != null)
     {
         calenderButton.UpdateState(CalenderButton.State.Selected, buttonDate, m_StartDate, m_EndDate);
         calenderButton.UpdateState(CalenderButton.State.Highlighted, buttonDate, m_StartDate, m_EndDate);
     }
     else if (m_EndDate != null && m_EndDate == buttonDate)
     {
         calenderButton.UpdateState(CalenderButton.State.Selected, buttonDate, m_StartDate, m_EndDate);
     }
     else if (m_StartDate != null && m_EndDate != null && buttonDate >= m_StartDate && buttonDate <= m_EndDate)
     {
         calenderButton.UpdateState(CalenderButton.State.Highlighted, buttonDate, m_StartDate, m_EndDate);
     }
 }
Пример #4
0
 public void OnPointerExit(CalenderButton chosenCalenderButton, Calender calender)
 {
     if (chosenCalenderButton.CurrentState == CalenderButton.State.Hover)
     {
         if (chosenCalenderButton.CurrentState != CalenderButton.State.Disabled)
         {
             chosenCalenderButton.UpdateState(CalenderButton.State.Normal, calender.Date, m_StartDate, m_EndDate);
         }
     }
 }
Пример #5
0
    public void OnPointerDown(CalenderButton chosenCalenderButton, DateTime chosenDate, Calender calender)
    {
        // clears selection
        if (m_StartDate != null && m_EndDate != null)
        {
            m_StartDate_SelectedBTN.ResetToOriginal();
            m_EndDate_SelectedBTN.ResetToOriginal();

            m_StartDate = null;
            m_EndDate   = null;

            // don't return on this one
        }

        if (m_StartDate == null && m_EndDate == null)
        {
            if (chosenCalenderButton.CurrentState != CalenderButton.State.Disabled)
            {
                m_StartDate             = chosenDate;
                m_StartDate_SelectedBTN = chosenCalenderButton;

                CalendersUpdated?.Invoke(m_StartDate, m_EndDate);
                chosenCalenderButton.UpdateState(CalenderButton.State.Selected, chosenDate, m_StartDate, m_EndDate);
            }
            return;
        }

        // revert, if second date is selected is less that the first chosen ddate
        if (m_StartDate != null && chosenDate <= m_StartDate && m_EndDate == null)
        {
            if (chosenCalenderButton.CurrentState != CalenderButton.State.Disabled)
            {
                // revert previous selected start date
                m_StartDate_SelectedBTN.ResetToOriginal();

                m_StartDate             = chosenDate;
                m_StartDate_SelectedBTN = chosenCalenderButton;

                CalendersUpdated?.Invoke(m_StartDate, m_EndDate);
                chosenCalenderButton.UpdateState(CalenderButton.State.Selected, chosenDate, m_StartDate, m_EndDate);
            }

            return;
        }

        if (m_StartDate != null && m_EndDate == null)
        {
            m_EndDate = chosenDate;

            // select end button
            chosenCalenderButton.UpdateState(CalenderButton.State.Selected, chosenDate, m_StartDate, m_EndDate);

            m_EndDate_SelectedBTN = chosenCalenderButton;

            CalendersUpdated?.Invoke(m_StartDate, m_EndDate);

            if (m_CloseOnLastSelection)
            {
                FW_Calender.gameObject.SetActive(false);
                SW_Calender.gameObject.SetActive(false);
            }

            return;
        }
    }
Пример #6
0
    public void OnPointerDown(CalenderButton chosenCalenderButton, DateTime chosenDate, Calender calender)
    {
        // clears selection
        if (m_StartDate != null && m_EndDate != null)
        {
            for (int i = 0; i < 42; i++)
            {
                m_Calender.CalenderButtons[i].ResetToOriginal();
            }

            m_StartDate = null;
            m_EndDate   = null;

            // don't return on this one
        }

        // intiate first click
        if (m_StartDate == null && m_EndDate == null)
        {
            if (chosenCalenderButton.CurrentState != CalenderButton.State.Disabled)
            {
                m_StartDate             = chosenDate;
                m_StartDate_SelectedBTN = chosenCalenderButton;

                CalendersUpdated?.Invoke(m_StartDate, m_EndDate);
                chosenCalenderButton.UpdateState(CalenderButton.State.Selected, chosenDate, m_StartDate, m_EndDate);
            }
            return;
        }


        if (m_StartDate != null && chosenDate <= m_StartDate && m_EndDate == null)
        {
            if (chosenCalenderButton.CurrentState != CalenderButton.State.Disabled)
            {
                // revert previous selected start date
                m_StartDate_SelectedBTN.ResetToOriginal();

                m_StartDate             = chosenDate;
                m_StartDate_SelectedBTN = chosenCalenderButton;

                CalendersUpdated?.Invoke(m_StartDate, m_EndDate);
                chosenCalenderButton.UpdateState(CalenderButton.State.Selected, chosenDate, m_StartDate, m_EndDate);
            }

            return;
        }

        // initiate second click
        if (m_StartDate != null && m_EndDate == null)
        {
            m_EndDate = chosenDate;

            // select end button
            chosenCalenderButton.UpdateState(CalenderButton.State.Selected, chosenDate, m_StartDate, m_EndDate);

            DateTime date = m_StartDate.Value;

            for (int i = 0; i < (m_EndDate - m_StartDate).Value.TotalDays + 1; i++)
            {
                CalenderButton calenderButton;

                calenderButton = m_Calender.CalenderButtons.Where(x => x.Date == date && x.CurrentState != CalenderButton.State.Disabled).FirstOrDefault();


                if (calenderButton != null)
                {
                    calenderButton.UpdateState(CalenderButton.State.Highlighted, date, m_StartDate, m_EndDate);
                }

                date = date.AddDays(1);
            }

            CalendersUpdated?.Invoke(m_StartDate, m_EndDate);

            if (m_CloseOnLastSelection)
            {
                m_Calender.gameObject.SetActive(false);
            }

            return;
        }
    }