예제 #1
0
        private void beginEdit(EditResult?result = null)
        {
            if (tooltip != null)
            {
                ((ApptToolTip)tooltip).Close();
            }

            if (_appointment.IsRepeating)
            {
                if (!result.HasValue)
                {
                    EditRecurring dlg = new EditRecurring(Application.Current.MainWindow, EditingType.Open);

                    if (dlg.ShowDialog() == false)
                    {
                        return;
                    }

                    _appointment.RepeatIsExceptionToRule = dlg.EditResult == EditResult.Single;
                }
                else
                {
                    _appointment.RepeatIsExceptionToRule = result.Value == EditResult.Single;
                }

                if (!_appointment.RepeatIsExceptionToRule && _appointment.RepeatID != null)
                {
                    // Load base recurring appointment
                    _appointment = AppointmentDatabase.GetRecurringAppointment(_appointment.RepeatID);
                }
            }

            BeginEditEvent(EventArgs.Empty);
        }
예제 #2
0
        public void BeginEdit(int insertionPosition = -1)
        {
            _uneditedAppointment = new Appointment(_appointment);

            if (_appointment.IsRepeating)
            {
                EditRecurring dlg = new EditRecurring(Window.GetWindow(this), EditingType.Open);

                if (dlg.ShowDialog() == false)
                {
                    return;
                }

                _appointment.RepeatIsExceptionToRule = dlg.EditResult == EditResult.Single;

                if (!_appointment.RepeatIsExceptionToRule && _appointment.RepeatID != null)
                {
                    // Load base recurring appointment
                    _appointment = AppointmentDatabase.GetRecurringAppointment(_appointment.RepeatID);
                }
            }

            _inEditMode = true;

            if (tooltip != null)
            {
                ((ApptToolTip)tooltip).Close();
            }

            BeginEditEvent(EventArgs.Empty);

            display.Visibility    = Visibility.Collapsed;
            edit.Visibility       = Visibility.Visible;
            edit.IsEnabled        = true;
            subjectEdit.IsEnabled = true;

            if (_appointment != null)
            {
                subjectEdit.Text = _appointment.Subject;
            }

            if (insertionPosition == -1)
            {
                subjectEdit.CaretIndex = subjectEdit.Text.Length;
                subjectEdit.ScrollToEnd();
            }
            else
            {
                subjectEdit.CaretIndex = insertionPosition;
            }

            subjectEdit.Activate();
        }
예제 #3
0
        private void invokeDoubleClickEvent(EditResult?result = null)
        {
            if (_inEditMode)
            {
                CancelEdit();
            }

            if (tooltip != null)
            {
                tooltip.FastClose();
            }

            if (_appointment.IsRepeating)
            {
                if (!result.HasValue)
                {
                    EditRecurring dlg = new EditRecurring(Window.GetWindow(this), EditingType.Open);

                    if (dlg.ShowDialog() == false)
                    {
                        return;
                    }

                    _appointment.RepeatIsExceptionToRule = dlg.EditResult == EditResult.Single;
                }
                else
                {
                    _appointment.RepeatIsExceptionToRule = result.Value == EditResult.Single;
                }

                if (_appointment.RepeatIsExceptionToRule)
                {
                    // Set the date to the date of this MonthDetail.
                    _appointment.RepresentingDate = _date;
                }
                else if (!_appointment.RepeatIsExceptionToRule && _appointment.RepeatID != null)
                {
                    // Load base recurring appointment
                    _appointment = AppointmentDatabase.GetRecurringAppointment(_appointment.RepeatID);
                }
            }

            DoubleClickEvent(EventArgs.Empty);
        }
예제 #4
0
        /// <summary>
        /// Refreshes all appointments with the given ID.
        /// </summary>
        /// <param name="id"></param>
        public void Refresh(string id)
        {
            foreach (DayDetail each in stackPanel.Children)
            {
                Appointment appt = each.Appointment;

                if (appt.ID == id || appt.RepeatID == id)
                {
                    if (appt.IsRepeating && appt.RepeatID == null)
                    {
                        each.Appointment = AppointmentDatabase.GetRecurringAppointment(id);
                    }
                    else
                    {
                        each.Appointment = AppointmentDatabase.GetAppointment(appt.ID);
                    }

                    each.InitializeDisplay();
                    return;
                }
            }

            foreach (DayDetail each in clockGrid.Items)
            {
                Appointment appt = each.Appointment;

                if (appt.ID == id || appt.RepeatID == id)
                {
                    if (appt.IsRepeating && appt.RepeatID == null)
                    {
                        each.Appointment = AppointmentDatabase.GetRecurringAppointment(id);
                    }
                    else
                    {
                        each.Appointment = AppointmentDatabase.GetAppointment(appt.ID);
                    }

                    each.InitializeDisplay();
                    return;
                }
            }
        }