Exemple #1
0
        /// <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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
 }
Exemple #6
0
        public void OnContentChanged()
        {
            if (panelMain.Controls.Count == 0)
            {
                return;
            }

            ISettingsControl settingsControl = panelMain.Controls[0] as ISettingsControl;

            buttonSave.Enabled = settingsControl.Dirty;
        }
Exemple #7
0
 private void SaveCurrentControl()
 {
     if (contentPanel.HasChildren)
     {
         ISettingsControl currentControl = contentPanel.Controls[0] as ISettingsControl;
         if (currentControl != null)
         {
             currentControl.Save();
         }
     }
 }
Exemple #8
0
        private void ShowNodeRepresentation(INode node)
        {
            UserControl control = node.CreateControl();

            ISettingsControl settingsControl = (ISettingsControl)control;

            settingsControl.LoadData();

            Strings.Localize(control);

            ShowControl(node, control);
        }
Exemple #9
0
 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;
 }
Exemple #10
0
        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();
                }
            }
        }
Exemple #11
0
        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;
        }
Exemple #12
0
 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);
 }
Exemple #13
0
        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);
            }
        }
Exemple #14
0
        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);
        }
Exemple #15
0
        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();
 }
Exemple #17
0
 public SettingsNavigation(ISettingsControl settingsControl)
 {
     SettingsControl = settingsControl;
 }