Example #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);
        }
Example #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();
        }
Example #3
0
        public void AnimatedDelete(bool deleteFromDatabase = true)
        {
            if (_isDeleting)
            {
                return;
            }

            CloseToolTip();

            if (deleteFromDatabase && _appointment != null)
            {
                if (_appointment.IsRepeating)
                {
                    EditRecurring dlg = new EditRecurring(Application.Current.MainWindow, EditingType.Delete);

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

                    if (dlg.EditResult == EditResult.Single)
                    {
                        AppointmentDatabase.DeleteOne(_appointment, _appointment.RepresentingDate);
                    }
                    else
                    {
                        AppointmentDatabase.Delete(_appointment);
                    }
                }
                else
                {
                    AppointmentDatabase.Delete(_appointment);
                }

                ReminderQueue.RemoveItem(_appointment.ID, _appointment.IsRepeating ? _appointment.RepresentingDate.Add(_appointment.StartDate.TimeOfDay) : _appointment.StartDate, ReminderType.Appointment);
            }

            _isDeleting = true;
            DeleteStartEvent(EventArgs.Empty);

            if (Settings.AnimationsEnabled)
            {
                AnimationHelpers.DeleteAnimation delAnim = new AnimationHelpers.DeleteAnimation(this);
                delAnim.OnAnimationCompletedEvent += delAnim_OnAnimationCompletedEvent;
                delAnim.Animate();
            }
            else
            {
                DeleteEndEvent(EventArgs.Empty);
            }
        }
Example #4
0
        public void Delete(EditResult?result = null)
        {
            CloseToolTip();

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

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

                        if (dlg.EditResult == EditResult.Single)
                        {
                            AppointmentDatabase.DeleteOne(_appointment, _appointment.RepresentingDate);
                        }
                        else
                        {
                            AppointmentDatabase.Delete(_appointment);
                        }
                    }
                    else
                    {
                        if (result.Value == EditResult.Single)
                        {
                            AppointmentDatabase.DeleteOne(_appointment, _appointment.RepresentingDate);
                        }
                        else
                        {
                            AppointmentDatabase.Delete(_appointment);
                        }
                    }
                }
                else
                {
                    AppointmentDatabase.Delete(_appointment);
                }

                ReminderQueue.RemoveItem(_appointment.ID, _appointment.IsRepeating ? _appointment.RepresentingDate.Add(_appointment.StartDate.TimeOfDay) : _appointment.StartDate, ReminderType.Appointment);
            }

            IsHitTestVisible = false;

            DeleteStartEvent(EventArgs.Empty);
            DeleteEndEvent(EventArgs.Empty);
        }
Example #5
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);
        }