public override DestinationBase Create()
        {
            Growl.Connector.Priority? priority = null;
            PrefPriority prefPriority = this.comboBoxMinimumPriority.SelectedItem as PrefPriority;
            if (prefPriority != null) priority = prefPriority.Priority.Value;

            EmailForwardDestination efd = new EmailForwardDestination(this.textBoxDescription.Text, true, this.textBoxUsername.Text, this.smtp, priority, this.checkBoxOnlyWhenIdle.Checked);
            return efd;
        }
        public override DestinationBase Create()
        {
            Growl.Connector.Priority?priority     = null;
            PrefPriority             prefPriority = this.comboBoxMinimumPriority.SelectedItem as PrefPriority;

            if (prefPriority != null)
            {
                priority = prefPriority.Priority.Value;
            }

            EmailForwardDestination efd = new EmailForwardDestination(this.textBoxDescription.Text, true, this.textBoxUsername.Text, this.smtp, priority, this.checkBoxOnlyWhenIdle.Checked);

            return(efd);
        }
        public override void Update(DestinationBase fd)
        {
            EmailForwardDestination efd = fd as EmailForwardDestination;

            if (efd != null)
            {
                efd.Description  = this.textBoxDescription.Text;
                efd.To           = this.textBoxUsername.Text;
                efd.OnlyWhenIdle = this.checkBoxOnlyWhenIdle.Checked;
                PrefPriority prefPriority = this.comboBoxMinimumPriority.SelectedItem as PrefPriority;
                efd.MinimumPriority   = (prefPriority != null ? prefPriority.Priority : null);
                efd.SMTPConfiguration = this.smtp;
            }
        }
        public override void Initialize(bool isSubscription, DestinationListItem fdli, DestinationBase fd)
        {
            this.doValidation = true;

            this.panelSMTPSettings.Visible = false;

            PrefPriority[] priorityChoices = PrefPriority.GetList(false);
            this.comboBoxMinimumPriority.Items.Add(Properties.Resources.AddProwl_AnyPriority);
            for (int i = 0; i < priorityChoices.Length; i++)
            {
                this.comboBoxMinimumPriority.Items.Add(priorityChoices[i]);
            }
            this.comboBoxMinimumPriority.SelectedIndex = 0;

            // set text box values
            this.textBoxDescription.Text               = String.Empty;
            this.textBoxDescription.Enabled            = true;
            this.textBoxUsername.Text                  = String.Empty;
            this.textBoxUsername.Enabled               = true;
            this.comboBoxMinimumPriority.SelectedIndex = 0;
            this.comboBoxMinimumPriority.Enabled       = true;

            EmailForwardDestination efd = fd as EmailForwardDestination;

            if (efd != null)
            {
                this.textBoxDescription.Text = efd.Description;
                this.textBoxUsername.Text    = efd.To;
                if (efd.MinimumPriority != null && efd.MinimumPriority.HasValue)
                {
                    this.comboBoxMinimumPriority.SelectedItem = PrefPriority.GetByValue(efd.MinimumPriority.Value);
                }
                this.checkBoxOnlyWhenIdle.Checked = efd.OnlyWhenIdle;
                this.smtp = efd.SMTPConfiguration;
            }
            this.labelSMTPValues.Text = String.Format("{0}", this.smtp.Host);

            ValidateInputs();

            this.textBoxDescription.Focus();
        }