/trunk/Winify/Settings/SettingsForm.cs |
@@ -0,0 +1,166 @@ |
using System; |
using System.Linq; |
using System.Windows.Forms; |
using Announcements; |
using Servers; |
using Winify.Utilities; |
|
namespace Winify.Settings |
{ |
public partial class SettingsForm : Form |
{ |
#region Public Events & Delegates |
|
public event EventHandler<SettingsSavedEventArgs> Save; |
|
#endregion |
|
#region Private Delegates, Events, Enums, Properties, Indexers and Fields |
|
private readonly BindingSource _announcementBindingSource; |
|
private readonly Announcements.Announcements _announcements; |
|
private readonly BindingSource _serverBindingSource; |
|
private readonly global::Servers.Servers _servers; |
|
private Announcement _announcement; |
|
private Server _server; |
|
#endregion |
|
#region Constructors, Destructors and Finalizers |
|
private SettingsForm() |
{ |
InitializeComponent(); |
} |
|
public SettingsForm(global::Servers.Servers servers, Announcements.Announcements announcements) : this() |
{ |
_servers = servers; |
_server = _servers.Server.FirstOrDefault() ?? new Server(); |
|
_serverBindingSource = new BindingSource(); |
_serverBindingSource.DataSource = _server; |
|
serverNameTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Name), true, |
DataSourceUpdateMode.OnPropertyChanged)); |
serverUrlTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Url), true, |
DataSourceUpdateMode.OnPropertyChanged)); |
serverUsernameTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Username), |
true, |
DataSourceUpdateMode.OnPropertyChanged)); |
serverPasswordTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Password), |
true, |
DataSourceUpdateMode.OnPropertyChanged)); |
|
listBox1.DataSource = _servers.Server; |
listBox1.DisplayMember = "Name"; |
listBox1.DataBindings.Add(new Binding("Text", _servers.Server, "Name", true, |
DataSourceUpdateMode.OnPropertyChanged)); |
|
_announcements = announcements; |
_announcement = _announcements.Announcement.FirstOrDefault() ?? new Announcement(); |
|
_announcementBindingSource = new BindingSource(); |
_announcementBindingSource.DataSource = _announcement; |
|
appIdTextBox.DataBindings.Add(new Binding("Text", _announcementBindingSource, nameof(_announcement.AppId), |
true, |
DataSourceUpdateMode.OnPropertyChanged)); |
lingerTimeTextBox.DataBindings.Add(new Binding("Text", _announcementBindingSource, |
nameof(_announcement.LingerTime), true, |
DataSourceUpdateMode.OnPropertyChanged)); |
|
listBox2.DataSource = _announcements.Announcement; |
listBox2.DisplayMember = "Id"; |
listBox2.DataBindings.Add(new Binding("Text", _announcements.Announcement, "Id", true, |
DataSourceUpdateMode.OnPropertyChanged)); |
} |
|
#endregion |
|
#region Event Handlers |
|
private void CheckBox1_CheckedChanged(object sender, EventArgs e) |
{ |
Properties.Settings.Default.LaunchOnBoot = ((CheckBox) sender).Checked; |
|
Miscellaneous.LaunchOnBootSet(Properties.Settings.Default.LaunchOnBoot); |
} |
|
private void Button1_Click(object sender, EventArgs e) |
{ |
var server = new Server(); |
|
_servers.Server.Add(server); |
|
listBox1.SelectedItem = server; |
} |
|
private void Button2_Click(object sender, EventArgs e) |
{ |
if (listBox1.SelectedItem is Server server) |
{ |
_servers.Server.Remove(server); |
} |
} |
|
private void ListBox1_SelectedIndexChanged(object sender, EventArgs e) |
{ |
var listBox = (ListBox) sender; |
|
if (listBox.SelectedItem is Server server) |
{ |
_server = server; |
|
_serverBindingSource.DataSource = _server; |
} |
} |
|
private void Button3_Click(object sender, EventArgs e) |
{ |
if (listBox2.SelectedItem is Announcement announcement) |
{ |
_announcements.Announcement.Remove(announcement); |
} |
} |
|
private void Button4_Click(object sender, EventArgs e) |
{ |
var announcement = new Announcement(); |
|
_announcements.Announcement.Add(announcement); |
|
listBox2.SelectedItem = announcement; |
} |
|
private void ListBox2_SelectedIndexChanged(object sender, EventArgs e) |
{ |
var listBox = (ListBox) sender; |
|
if (listBox.SelectedItem is Announcement announcement) |
{ |
_announcement = announcement; |
|
_announcementBindingSource.DataSource = _announcement; |
} |
} |
|
private void Button6_Click(object sender, EventArgs e) |
{ |
Close(); |
} |
|
private void Button5_Click(object sender, EventArgs e) |
{ |
Save?.Invoke(this, new SettingsSavedEventArgs(_servers, _announcements)); |
Close(); |
} |
|
#endregion |
} |
} |