Exemple #1
0
        private void pluginTreeView_AfterSelect(object sender, TreeViewEventArgs e)
        {
            if (e.Node.Tag == null)
            {
                return;
            }

            ISettingsPlugin settingsPlugin = e.Node.Tag as ISettingsPlugin;

            UserControl control = settingsPlugin.Content;

            contentPanel.Controls.Clear();
            contentPanel.Controls.Add(control);
            control.Dock = DockStyle.Fill;
        }
Exemple #2
0
        private void LoadSettings()
        {
            foreach (KeyValuePair <string, PluginInfo> kv in plugins)
            {
                ISettingsPlugin settingsPlugin = PluginHelper.GetSettingsPlugin(kv.Value.AssemblyPath);
                if (settingsPlugin != null)
                {
                    settingsPlugins.Add(kv.Key, settingsPlugin);
                }
            }

            foreach (KeyValuePair <string, ISettingsPlugin> kv in settingsPlugins)
            {
                pluginTreeView.AddSettingsPlugin(plugins[kv.Key], kv.Value);
            }
        }
Exemple #3
0
        public void AddSettingsPlugin(PluginInfo pluginInfo, ISettingsPlugin settingsPlugin)
        {
            #region Main Plugin Node

            TreeNode pluginItem = new TreeNode(pluginInfo.Plugin.Title);
            pluginItem.Tag = settingsPlugin;

            try
            {
                if (!string.IsNullOrEmpty(pluginInfo.Plugin.Icon))
                {
                    imageList.Images.Add(Image.FromFile(pluginInfo.Plugin.Icon));
                    pluginItem.ImageIndex         = imageList.Images.Count - 1;
                    pluginItem.SelectedImageIndex = imageList.Images.Count - 1;
                }
            }
            catch (NotImplementedException) { } // No icon

            #endregion

            #region SubGroup

            TreeNode subGroup = null;
            try
            {
                if (!string.IsNullOrEmpty(pluginInfo.Plugin.SubGroup))
                {
                    subGroup = new TreeNode(pluginInfo.Plugin.SubGroup);
                    subGroup.Nodes.Add(pluginItem);
                }
            }
            catch (NotImplementedException)
            {
                // Do nothing (check for main group next)
            }

            #endregion

            #region Group

            TreeNode group = null;
            try
            {
                if (!string.IsNullOrEmpty(pluginInfo.Plugin.Group))
                {
                    group = new TreeNode(pluginInfo.Plugin.Group);

                    if (subGroup != null)
                    {
                        group.Nodes.Add(subGroup);
                    }
                    else
                    {
                        group.Nodes.Add(pluginItem);
                    }
                    //this.Nodes.Add(group);
                    EnsureNode(group);
                }
            }
            catch (NotImplementedException)
            {
                if (subGroup != null)
                {
                    this.Nodes.Add(subGroup);
                }
                else
                {
                    this.Nodes.Add(pluginItem);
                }
                return;
            }

            #endregion

            if (group == null && subGroup == null)
            {
                this.Nodes.Add(pluginItem);
            }
        }