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; }
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); } }
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); } }