diff --git a/Cop.Borovkov.Var3/Lab4/Forms/FormMain.cs b/Cop.Borovkov.Var3/Lab4/Forms/FormMain.cs index 87a0204..83fc957 100644 --- a/Cop.Borovkov.Var3/Lab4/Forms/FormMain.cs +++ b/Cop.Borovkov.Var3/Lab4/Forms/FormMain.cs @@ -8,19 +8,32 @@ namespace Lab4.Forms private readonly Dictionary _plugins; private string _selectedPlugin; - public FormMain() + private readonly Func _pluginsConventionFunc; + + public FormMain(Func pluginsConventionFunc) { InitializeComponent(); + _pluginsConventionFunc = pluginsConventionFunc; + _plugins = LoadPlugins(); _selectedPlugin = string.Empty; } private Dictionary LoadPlugins() { - // TODO Заполнить IPluginsConvention - // TODO Заполнить пункт меню "Компоненты" на основе IPluginsConvention.PluginName - // TODO Например, создавать ToolStripMenuItem, привязывать к ним обработку событий и добавлять в menuStrip + Dictionary result = []; + + List keys = ["Успеваемость"]; + result = keys.Select(k => KeyValuePair.Create(k, _pluginsConventionFunc(k))).ToDictionary(); + foreach (string key in keys) + { + var item = new ToolStripMenuItem(key); + item.Click += (s, e) => _selectedPlugin = key; + + ControlsStripMenuItem.Container!.Add(item); + } + // TODO При выборе пункта меню получать UserControl и заполнять элемент panelControl этим контролом на всю площадь // Пример: panelControl.Controls.Clear(); // panelControl.Controls.Add(ctrl);