Winify – Blame information for rev 30

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 using System;
4 office 2 using System.Linq;
30 office 3 using System.Threading;
1 office 4 using System.Windows.Forms;
15 office 5 using Announcements;
6 office 6 using Servers;
1 office 7 using Winify.Utilities;
8  
25 office 9 namespace Winify.Settings
1 office 10 {
11 public partial class SettingsForm : Form
12 {
25 office 13 #region Public Events & Delegates
14  
15 public event EventHandler<SettingsSavedEventArgs> Save;
16  
17 #endregion
18  
4 office 19 #region Private Delegates, Events, Enums, Properties, Indexers and Fields
20  
21 office 21 private readonly BindingSource _announcementBindingSource;
15 office 22  
21 office 23 private readonly Announcements.Announcements _announcements;
24  
25 private readonly BindingSource _serverBindingSource;
26  
30 office 27 private readonly Servers.Servers _servers;
4 office 28  
21 office 29 private Announcement _announcement;
30  
31 private Server _server;
30 office 32 private readonly MainForm _mainForm;
33 private readonly CancellationToken _cancellationToken;
21 office 34  
4 office 35 #endregion
36  
1 office 37 #region Constructors, Destructors and Finalizers
38  
30 office 39 public SettingsForm()
1 office 40 {
41 InitializeComponent();
42 }
43  
30 office 44 public SettingsForm(MainForm mainForm) : this()
4 office 45 {
30 office 46 _mainForm = mainForm;
47 }
48  
49 public SettingsForm(MainForm mainForm, Servers.Servers servers, Announcements.Announcements announcements,
50 CancellationToken cancellationToken) : this(mainForm)
51 {
4 office 52 _servers = servers;
21 office 53 _server = _servers.Server.FirstOrDefault() ?? new Server();
30 office 54 _cancellationToken = cancellationToken;
7 office 55  
21 office 56 _serverBindingSource = new BindingSource();
57 _serverBindingSource.DataSource = _server;
58  
59 serverNameTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Name), true,
60 DataSourceUpdateMode.OnPropertyChanged));
61 serverUrlTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Url), true,
62 DataSourceUpdateMode.OnPropertyChanged));
63 serverUsernameTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Username),
64 true,
65 DataSourceUpdateMode.OnPropertyChanged));
66 serverPasswordTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Password),
67 true,
68 DataSourceUpdateMode.OnPropertyChanged));
69  
7 office 70 listBox1.DataSource = _servers.Server;
71 listBox1.DisplayMember = "Name";
72 listBox1.DataBindings.Add(new Binding("Text", _servers.Server, "Name", true,
73 DataSourceUpdateMode.OnPropertyChanged));
15 office 74  
21 office 75 _announcements = announcements;
76 _announcement = _announcements.Announcement.FirstOrDefault() ?? new Announcement();
77  
78 _announcementBindingSource = new BindingSource();
79 _announcementBindingSource.DataSource = _announcement;
80  
81 appIdTextBox.DataBindings.Add(new Binding("Text", _announcementBindingSource, nameof(_announcement.AppId),
82 true,
83 DataSourceUpdateMode.OnPropertyChanged));
84 lingerTimeTextBox.DataBindings.Add(new Binding("Text", _announcementBindingSource,
85 nameof(_announcement.LingerTime), true,
86 DataSourceUpdateMode.OnPropertyChanged));
87  
88 listBox2.DataSource = _announcements.Announcement;
15 office 89 listBox2.DisplayMember = "Id";
21 office 90 listBox2.DataBindings.Add(new Binding("Text", _announcements.Announcement, "Id", true,
15 office 91 DataSourceUpdateMode.OnPropertyChanged));
4 office 92 }
93  
1 office 94 #endregion
95  
96 #region Event Handlers
97  
98 private void CheckBox1_CheckedChanged(object sender, EventArgs e)
99 {
30 office 100 _mainForm.Configuration.LaunchOnBoot = ((CheckBox)sender).Checked;
1 office 101  
30 office 102 _mainForm.ChangedConfigurationContinuation.Schedule(TimeSpan.FromSeconds(1),
103 async () => { await _mainForm.SaveConfiguration(); }, _cancellationToken);
104  
105 Miscellaneous.LaunchOnBootSet(_mainForm.Configuration.LaunchOnBoot);
1 office 106 }
107  
4 office 108 private void Button1_Click(object sender, EventArgs e)
109 {
21 office 110 var server = new Server();
4 office 111  
21 office 112 _servers.Server.Add(server);
25 office 113  
114 listBox1.SelectedItem = server;
4 office 115 }
116  
117 private void Button2_Click(object sender, EventArgs e)
118 {
28 office 119 if (listBox1.SelectedItem is Server server) _servers.Server.Remove(server);
4 office 120 }
121  
122 private void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
123 {
28 office 124 var listBox = (ListBox)sender;
4 office 125  
21 office 126 if (listBox.SelectedItem is Server server)
4 office 127 {
21 office 128 _server = server;
4 office 129  
21 office 130 _serverBindingSource.DataSource = _server;
4 office 131 }
132 }
133  
15 office 134 private void Button3_Click(object sender, EventArgs e)
135 {
28 office 136 if (listBox2.SelectedItem is Announcement announcement) _announcements.Announcement.Remove(announcement);
15 office 137 }
138  
139 private void Button4_Click(object sender, EventArgs e)
140 {
21 office 141 var announcement = new Announcement();
15 office 142  
21 office 143 _announcements.Announcement.Add(announcement);
25 office 144  
145 listBox2.SelectedItem = announcement;
15 office 146 }
147  
148 private void ListBox2_SelectedIndexChanged(object sender, EventArgs e)
149 {
28 office 150 var listBox = (ListBox)sender;
15 office 151  
21 office 152 if (listBox.SelectedItem is Announcement announcement)
15 office 153 {
21 office 154 _announcement = announcement;
15 office 155  
21 office 156 _announcementBindingSource.DataSource = _announcement;
15 office 157 }
158 }
159  
25 office 160 private void Button6_Click(object sender, EventArgs e)
161 {
162 Close();
163 }
164  
165 private void Button5_Click(object sender, EventArgs e)
166 {
167 Save?.Invoke(this, new SettingsSavedEventArgs(_servers, _announcements));
30 office 168  
25 office 169 Close();
170 }
171  
30 office 172 private void SettingsForm_Load(object sender, EventArgs e)
173 {
174 checkBox1.Checked = _mainForm.Configuration.LaunchOnBoot;
175 }
176  
1 office 177 #endregion
178 }
179 }