using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using BlubbFish.Utils; namespace NetMonitorTray.View { public partial class ViewWindowForm : Form { private Models.Window model; private int clickedNetwork = 0; private int clickedVpn = 0; public ViewWindowForm() { this.InitializeComponent(); this.FormClosed += Controller.Window.FormClosed; this.networksList.ItemActivate += Controller.Window.NetworkAktivate; this.openvpnList.ItemActivate += Controller.Window.VpnAktivate; this.networksList.Click += Controller.Window.NetworkSelected; this.openvpnList.Click += Controller.Window.VpnSelected; this.settingsFolderpickerVpn.Click += new System.EventHandler(Controller.Window.ChangeOpenVpnFolder); this.openvpnButtonConfigfile.Click += new System.EventHandler(Controller.Window.ChangeOpenVpnConfigFile); this.settingsFolderPickerLog.Click += new System.EventHandler(Controller.Window.ChangeLogFolder); } public void UpdateForm() { this.BeginInvoke((Action)(() => { updateLog(); updateNetworks(); updateVpn(); updateSettings(); })); } private void updateLog() { this.logBox.Text = "TODO: Read Log File"; } private void updateVpn() { List vpns = this.model.Vpns; foreach(string vpn in vpns) { ListViewItem item = new ListViewItem(); item.Text = vpn; item.SubItems.Add(this.model.getVpnProperty(vpn, "Name")); openvpnList.Items.Add(item); } showSelectedOpenvpn(clickedVpn); } public void showSelectedOpenvpn(int i) { List vpns = this.model.Vpns; if(vpns.Count == 0) { return; } if(vpns.Count <= i) { i = 0; } for(int j = 0; j < this.openvpnList.Items.Count; j++) { if(j == i) { this.openvpnList.Items[j].Selected = true; } else { this.openvpnList.Items[j].Selected = false; } string n = vpns[i]; string v = this.model.getVpnProperty(n, "Name"); this.openvpnName.Text = v; v = this.model.getVpnProperty(n, "Config"); this.openvpnConfig.Text = v; } } private void updateNetworks() { List networks = this.model.Networks; foreach(string network in networks) { ListViewItem item = new ListViewItem(); item.Text = network; item.SubItems.Add(this.model.getNetworkProperty(network, "Name")); networksList.Items.Add(item); } List adapters = this.model.getNetworkAdapters(); this.networkAdapter.Items.AddRange(adapters.ToArray()); showSelectedNetwork(clickedNetwork); } public void showSelectedNetwork(int i) { List networks = this.model.Networks; if(networks.Count == 0) { return; } if(networks.Count <= i) { i = 0; } for(int j=0; j