private void btnDeleteServer_Click(object sender, RoutedEventArgs e)
        {
            ServerSchema myServerSchema = (ServerSchema)cmbChooseServer.SelectedItem;

            if (m_Servers.ServerSchema.Count > 1)
            {
                for (int i = 0; i < this.stackServers.Children.Count; i++)
                {
                    if (this.stackServers.Children[i] is ServerControl)
                    {
                        ServerControl myServerControl  = (ServerControl)this.stackServers.Children[i];
                        ServerSchema  compServerSchema = (ServerSchema)myServerControl.DataContext;
                        if (myServerSchema.Equals(compServerSchema))
                        {
                            if (i - 1 >= 0)
                            {
                                if (this.stackServers.Children[i - 1] is Separator)
                                {
                                    this.stackServers.Children.RemoveAt(i - 1);
                                }
                            }
                            if (this.stackServers.Children[i - 1] is ServerControl)
                            {
                                this.stackServers.Children.RemoveAt(i - 1);
                            }
                        }
                    }
                }
                m_Servers.ServerSchema.Remove(myServerSchema);
                cmbChooseServer.SelectedItem = m_Servers.ServerSchema[0];
            }

            /*
             * ServerControl servCtrl = new ServerControl();
             * Separator sep = new Separator();
             * if (m_Servers.OneServer)
             * {
             *  sep.Visibility = System.Windows.Visibility.Collapsed;
             * }
             * sep.Width = servCtrl.Width;
             * sep.Height = 10;
             * sep.BorderThickness = new Thickness(10, 10, 10, 10);
             * sep.BorderBrush = Brushes.Black;
             * this.stackServers.Children.Add(sep);
             * ServerSchema newServerSchema = new ServerSchema();
             * m_Servers.ServerSchema.Add(newServerSchema);
             * servCtrl.DataContext = newServerSchema;
             * servCtrl.Visibility = Visibility.Visible;
             * this.stackServers.Children.Add(servCtrl);
             * newServerSchema.Visible = true;
             * newServerSchema.PropertyChanged += m_Application.Model_PropertyChanged;
             * cmbChooseServer.SelectedItem = newServerSchema;
             */
        }
 public void SetVisibleServer(ServerSchema server)
 {
     for (int i = 0; i < this.stackServers.Children.Count; i++)
     {
         if (this.stackServers.Children[i] is ServerControl)
         {
             ServerControl tempServerControl = (ServerControl)this.stackServers.Children[i];
             ServerSchema  serverSchema      = (ServerSchema)tempServerControl.DataContext;
             if (serverSchema.Equals(server))
             {
                 tempServerControl.Visibility = System.Windows.Visibility.Visible;
                 serverSchema.Visible         = true;
                 //Application.Current.Resources["SAVE"] = false;
                 bool saved = (bool)Application.Current.Resources["SAVE"];
                 if (saved)
                 {
                     Application.Current.MainWindow.Title = serverSchema.DisplayName + " " + Constants.sVersionString;
                 }
                 else
                 {
                     Application.Current.MainWindow.Title = serverSchema.DisplayName + " " + Constants.sVersionString + Constants.sChangedString;
                 }
                 //cmbChooseServer.SelectedItem = serverSchema;
             }
             else
             {
                 tempServerControl.Visibility = System.Windows.Visibility.Collapsed;
                 serverSchema.Visible         = false;
             }
         }
         else if (this.stackServers.Children[i] is Separator)
         {
             Separator sep = (Separator)this.stackServers.Children[i];
             sep.Visibility = System.Windows.Visibility.Collapsed;
         }
     }
 }
        private void btnAddServer_Click(object sender, RoutedEventArgs e)
        {
            ServerControl servCtrl = new ServerControl();
            Separator     sep      = new Separator();

            if (m_Servers.OneServer)
            {
                sep.Visibility = System.Windows.Visibility.Collapsed;
            }
            sep.Width           = servCtrl.Width;
            sep.Height          = 10;
            sep.BorderThickness = new Thickness(10, 10, 10, 10);
            sep.BorderBrush     = Brushes.Black;
            this.stackServers.Children.Add(sep);
            ServerSchema newServerSchema = new ServerSchema();

            m_Servers.ServerSchema.Add(newServerSchema);
            servCtrl.DataContext = newServerSchema;
            servCtrl.Visibility  = Visibility.Visible;
            this.stackServers.Children.Add(servCtrl);
            newServerSchema.Visible          = true;
            newServerSchema.PropertyChanged += m_Application.Model_PropertyChanged;
            cmbChooseServer.SelectedItem     = newServerSchema;

            if (m_Servers.OneServer)
            {
                for (int i = 0; i < this.stackServers.Children.Count; i++)
                {
                    if (this.stackServers.Children[i] is ServerControl)
                    {
                        ServerControl serverControl = (ServerControl)this.stackServers.Children[i];
                        if (!serverControl.Equals(servCtrl))
                        {
                            this.stackServers.Children[i].Visibility = System.Windows.Visibility.Collapsed;
                        }
                        ServerSchema serverSchema = (ServerSchema)serverControl.DataContext;
                        if (!serverSchema.Equals(newServerSchema))
                        {
                            serverSchema.Visible = false;
                        }
                    }
                    else if (this.stackServers.Children[i] is Separator)
                    {
                        Separator tempSeparator = (Separator)this.stackServers.Children[i];
                        if (!tempSeparator.Equals(sep))
                        {
                            tempSeparator.Visibility = System.Windows.Visibility.Collapsed;
                        }
                    }
                }
            }
            else
            {
                ShowServerChooser(false);
                m_Servers.OneServer = false;
                for (int i = 0; i < this.stackServers.Children.Count; i++)
                {
                    if (this.stackServers.Children[i] is ServerControl)
                    {
                        ServerControl tempServerControl = (ServerControl)this.stackServers.Children[i];
                        if (tempServerControl.Visibility == System.Windows.Visibility.Collapsed)
                        {
                            tempServerControl.Visibility = System.Windows.Visibility.Visible;
                        }
                    }
                    else if (this.stackServers.Children[i] is Separator)
                    {
                        Separator tempSeparator = (Separator)this.stackServers.Children[i];
                        if (tempSeparator.Visibility == System.Windows.Visibility.Collapsed)
                        {
                            tempSeparator.Visibility = System.Windows.Visibility.Visible;
                        }
                    }

                    /*
                     * if (this.stackServers.Children[i] is ServerControl)
                     * {
                     *  ServerControl serverControl = (ServerControl)this.stackServers.Children[i];
                     *  ServerSchema serverSchema = (ServerSchema)serverControl.DataContext;
                     *  serverSchema.Visible = false;
                     * }
                     */
                }
            }

            /*
             * ServerSchema servSchema = (ServerSchema) this.DataContext;
             * Console.Out.WriteLine(servSchema.MailFrom);
             * Console.Out.WriteLine("Width " + stackServers.DesiredSize.Width);
             * ServerControl stackPanel = (ServerControl)stackServers.Children[0];
             * StackPanel sp = (StackPanel)stackPanel.FindName("outerStackPanel");
             * Console.Out.WriteLine("Width OuterStackpanel: " + sp.DesiredSize.Width.ToString());
             * if (m_Servers != null)
             * {
             *  m_Servers.SaveToFile("Servers2.xml");
             * }
             *
             * ListBox mailsListBox = (ListBox)stackPanel.FindName("lstMails");
             * //mailsListBox.It
             *
             * Window1 wnd1 = new Window1();
             * wnd1.InitializeComponent();
             * wnd1.ShowDialog();
             */
        }