/// <summary> /// Add if not added before /// </summary> T ShowControl <T>() where T : Control, new() { if (typeof(T) == null) { return(null); } string Name = typeof(T).Name; HideAllControls(); Control con; if (panel1.Controls.ContainsKey(Name)) { con = panel1.Controls[Name]; } else { con = new T(); ISettingsControl setCon = (ISettingsControl)con; setCon.OnChanged += new SettingChanged(setCon_OnChanged); panel1.Controls.Add(con); } con.BringToFront(); con.Visible = true; return((T)con); }
private bool ShowControl(INode node, UserControl control) { if (panelMain.Controls.Count > 0) { // Notify the old page that we're leaving, so that it can take care // of cleaning up... ISettingsControl oldSettingsControl = panelMain.Controls[0] as ISettingsControl; oldSettingsControl.OnLeavePage(); } panelMain.Controls.Clear(); panelMain.Controls.Add(control); control.Dock = DockStyle.Fill; ISettingsControl settingsControl = (ISettingsControl)control; labelTopCaption.Text = node.Title; if (!node.IsUserCreated) { Strings.Localize(labelTopCaption); } OnContentChanged(); return(true); }
private bool AskSaveChanges() { if (panelMain.Controls.Count == 0) { // No control is currently being displayed. Not much to save here. return(true); } // Check if the currently selected control is dirty. ISettingsControl settingsControl = panelMain.Controls[0] as ISettingsControl; if (settingsControl.Dirty) { DialogResult dr = MessageBox.Show("Do you want to save the changes?", EnumStrings.hMailServerAdministrator, MessageBoxButtons.YesNoCancel); switch (dr) { case DialogResult.Cancel: return(false); case DialogResult.Yes: return(SaveCurrentObject()); case DialogResult.No: return(true); } } return(true); }
/// <summary> /// Fill the right side of the form with the correct UserControl based on the selected item in the tree view. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void settingsTreeView_AfterSelect(object sender, TreeViewEventArgs e) { controlContainer.Controls.Clear(); ISettingsControl ctl = settingControls.Find(c => e.Node.Name.Contains(c.UniqueName)); if (ctl != null) { controlContainer.Controls.Add((UserControl)ctl); } }
public TreeNode AddSettingsNode(string providerName, ISettingsControl tag) { if (tag != null) { var treeNode = new TreeNode(providerName); treeNode.Tag = tag; this.Nodes.Add(treeNode); return(treeNode); } return(null); }
public void OnContentChanged() { if (panelMain.Controls.Count == 0) { return; } ISettingsControl settingsControl = panelMain.Controls[0] as ISettingsControl; buttonSave.Enabled = settingsControl.Dirty; }
private void SaveCurrentControl() { if (contentPanel.HasChildren) { ISettingsControl currentControl = contentPanel.Controls[0] as ISettingsControl; if (currentControl != null) { currentControl.Save(); } } }
private void ShowNodeRepresentation(INode node) { UserControl control = node.CreateControl(); ISettingsControl settingsControl = (ISettingsControl)control; settingsControl.LoadData(); Strings.Localize(control); ShowControl(node, control); }
public SettingsForm(ISettingsControl settingsControl) { InitializeComponent(); if (settingsControl as UserControl == null) throw new ArgumentException(); _settingsControl = settingsControl; this.ClientSize = (settingsControl as UserControl).Size; (settingsControl as UserControl).Left = 0; (settingsControl as UserControl).Top = 0; this.Controls.Add(settingsControl as UserControl); settingsControl.SettingsNotSet += new SettingsEventHandler(settingsControl_SettingsNotSet); settingsControl.SettingsSet += new SettingsEventHandler(settingsControl_SettingsSet); Successful = false; settings = null; }
private void formMain_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.F5) { // Refresh the currently selected node. A bit experimental... RefreshCurrentNode(null); if (panelMain.Controls.Count > 0) { ISettingsControl settingsControl = panelMain.Controls[0] as ISettingsControl; settingsControl.LoadData(); panelMain.Controls[0].Focus(); } } }
private void settingsTreeView_AfterSelect(object sender, TreeViewEventArgs e) { SaveCurrentControl(); if (e.Node.Tag == null) { return; } ISettingsControl settingsControl = e.Node.Tag as ISettingsControl; UserControl control = settingsControl.ControlContent; contentPanel.Controls.Clear(); contentPanel.Controls.Add(control); control.Dock = DockStyle.Fill; }
public bool HasSettings(Page Page, ModuleInfo Module) { try { ModuleControlInfo moduleControlInfo = ModuleControlController.GetModuleControlByControlKey("Settings", Module.ModuleDefID); if (moduleControlInfo != null) { Control _control = ModuleControlPipeline.LoadSettingsControl(Page, Module, moduleControlInfo.ControlSrc); ISettingsControl settingsControl = _control as ISettingsControl; if (settingsControl != null) { return(true); } } } catch (Exception ex) { } return(false); }
private void buttonHelp_Click(object sender, EventArgs e) { if (panelMain.Controls.Count == 0) { return; } // Check if the currently selected control is dirty. ISettingsControl settingsControl = panelMain.Controls[0] as ISettingsControl; Type t = settingsControl.GetType(); string name = t.Name; if (!name.StartsWith("uc")) { return; } name = name.Substring(2); name = name.ToLower(); // override... switch (name) { case "globalrules": name = "rule"; break; } string url = "http://www.hmailserver.com/documentation/?page=reference_" + name; try { System.Diagnostics.Process.Start(url); } catch (Exception ex) { MessageBox.Show("Web browser could not be started." + Environment.NewLine + ex.Message, EnumStrings.hMailServerAdministrator, MessageBoxButtons.OK, MessageBoxIcon.Warning); } }
private bool SaveCurrentObject() { // Check if the currently selected control is dirty. ISettingsControl settingsControl = panelMain.Controls[0] as ISettingsControl; try { if (!settingsControl.SaveData()) { return(false); } buttonSave.Enabled = settingsControl.Dirty; return(true); } catch (Exception e) { MessageBox.Show("Changes could not be saved" + Environment.NewLine + e.Message, EnumStrings.hMailServerAdministrator, MessageBoxButtons.OK); } return(false); }
private void ApplyButton_Click(object sender, EventArgs e) { ISettingsControl cnt = (ISettingsControl)m_ActiveControl; Debug.Assert(cnt != null); if (cnt.IsDirty) { try { cnt.Verify(); cnt.Save(); cnt.UpdateEnvironment(); } catch (Exception ex) { this.ShowError(ex.Message); } } else { this.ShowExclamation("Nothing to save."); } }
/// <summary> /// Initializes a new instance of the <see cref="SettingsPanelViewModel" /> class. /// </summary> /// <param name="uc">The uc.</param> /// <param name="sc">The sc.</param> public SettingsPanelViewModel(UserControl uc, ISettingsControl sc) { this.Control = uc; this.Name = sc.GetName(); this.Image = sc.GetImage(); }
public SettingsNavigation(ISettingsControl settingsControl) { SettingsControl = settingsControl; }