public Plugin() { InitializeComponent(); cmbPlugin.SelectedIndexChanged += (a, b) => { if ((cmbPlugin.SelectedIndex != -1) && (_lastselection != cmbPlugin.SelectedIndex)) { labStatus.Text = string.Empty; _lastselection = cmbPlugin.SelectedIndex; AddControls(); linkRegister.Tag = ((DownloadPluginInfo)cmbPlugin.SelectedItem).RegisterUrl; linkRegister.Text = "Sign Up for " + ((DownloadPluginInfo)cmbPlugin.SelectedItem).Name; } }; butTest.Click += async(a, b) => { if (cmbPlugin.SelectedIndex != -1) { DownloadPluginInfo pinfo = (DownloadPluginInfo)cmbPlugin.SelectedItem; await VerifyAuthentication(pinfo.Name); } }; linkRegister.LinkClicked += (a, b) => { System.Diagnostics.Process.Start((string)linkRegister.Tag); }; }
private void AddControls() { DownloadPluginInfo pinfo = (DownloadPluginInfo)cmbPlugin.SelectedItem; panel.Controls.Clear(); TableLayoutPanel pn = new TableLayoutPanel { Dock = DockStyle.Fill, RowCount = pinfo.AuthenticationRequirements.Count, ColumnCount = 2, AutoSize = true, AutoScroll = true, ColumnStyles = { new ColumnStyle { Width = 30, SizeType = SizeType.Percent }, new ColumnStyle { Width = 70, SizeType = SizeType.Percent }, } }; List <Control> labels = pinfo.AuthenticationRequirements.GenerateLabels(); List <Control> ctrls = pinfo.AuthenticationRequirements.GenerateControls(Settings.Instance.AuthorizationsMetadataDictionary[pinfo.Name]); for (int x = 0; x < pinfo.AuthenticationRequirements.Count; x++) { pn.RowStyles.Add(new RowStyle { Height = 30, SizeType = SizeType.Absolute }); pn.Controls.Add(labels[x]); pn.Controls.Add(ctrls[x]); pn.SetColumn(labels[x], 0); pn.SetRow(labels[x], x); pn.SetColumn(ctrls[x], 1); pn.SetRow(ctrls[x], x); } pn.RowStyles.Add(new RowStyle { Height = 1, SizeType = SizeType.Percent }); Panel pp = new Panel { Dock = DockStyle.Fill, }; pn.Controls.Add(pp); pn.SetColumn(pp, 0); pn.SetRow(pp, pinfo.AuthenticationRequirements.Count); pn.SetColumn(pp, 2); panel.Controls.Add(pn); panel.Controls.Add(pn); }
public void Init() { Dictionary <string, Dictionary <string, object> > auth = new Dictionary <string, Dictionary <string, object> >(); foreach (string s in DownloadPluginHandler.Instance.Plugins.Keys) { DownloadPluginInfo pi = DownloadPluginHandler.Instance.PluginInfos[s]; Dictionary <string, object> pmeta; pmeta = Settings.Instance.AuthorizationsMetadataDictionary.ContainsKey(s) ? Settings.Instance.AuthorizationsMetadataDictionary[s] : new Dictionary <string, object>(); auth.Add(s, pmeta.JoinMetadata(pi.DefaultAuthenticationData)); cmbPlugin.Items.Add(pi); } Settings.Instance.AuthorizationsMetadataDictionary = auth; if (DownloadPluginHandler.Instance.Plugins.Count > 0) { cmbPlugin.SelectedIndex = 0; } }
public void Init() { Dictionary <string, object> meta = new Dictionary <string, object>(); foreach (string s in DownloadPluginHandler.Instance.Plugins.Keys) { DownloadPluginInfo pi = DownloadPluginHandler.Instance.PluginInfos[s]; Dictionary <string, object> ndata = Settings.Instance.GlobalMetadataDictionary.JoinMetadata(pi.DefaultGlobalData); foreach (string n in ndata.Keys) { if (!meta.ContainsKey(n)) { meta.Add(n, ndata[n]); } } } Settings.Instance.GlobalMetadataDictionary = meta; AddControls(); }