public ServiceSettingsView(ServicePluginInstance servicePlugin) { this.servicePlugin = servicePlugin; service = servicePlugin.Service; authenticatable = service.AsAuthenticatable(); if (authenticatable == null) { throw new ArgumentException("Service instance passed must implement IAuthenticatable", nameof(service)); } InitializeComponent(); sspSignInStatus = new SplitStringParser(signInStatusLabel); sspSignInButton = new SplitStringParser(signInButton); if (authenticatable.IsAuthenticated) { signInStatusLabel.Text = String.Format(sspSignInStatus.Get(authenticatable.IsAuthenticated), LocalisableAccountNameFormat.GetFormattedName(authenticatable.Account)); } else { sspSignInStatus.Update(false); } sspSignInButton.Update(authenticatable.IsAuthenticated); var control = service.GetSettingsControl(); control.Dock = DockStyle.Fill; servicePanel.Controls.Add(control); }
private void servicesListBox_SelectedIndexChanged(object sender, EventArgs e) { selectedInstance = services[servicesListBox.SelectedIndex]; selectedService = selectedInstance.Service; serviceUiPanel.Controls.Clear(); if (selectedService.AsAuthenticatable() != null) { var ssv = new ServiceSettingsView(selectedInstance) { Dock = DockStyle.Fill }; serviceUiPanel.Controls.Add(ssv); } else { serviceUiPanel.Controls.Add(selectedService.GetSettingsControl()); } serviceNameLabel.Text = selectedService.Info.Name; serviceDescriptionLabel.Text = selectedService.Info.Description; serviceAuthorLabel.Text = selectedService.Info.Author; serviceWebsiteLabel.Text = selectedService.Info.Website.ToString(); }