добавил загрузку плагинов
This commit is contained in:
parent
5ee30cdde5
commit
a474bd8bbb
@ -8,19 +8,32 @@ namespace Lab4.Forms
|
||||
private readonly Dictionary<string, IPluginsConvention> _plugins;
|
||||
private string _selectedPlugin;
|
||||
|
||||
public FormMain()
|
||||
private readonly Func<string, IPluginsConvention> _pluginsConventionFunc;
|
||||
|
||||
public FormMain(Func<string, IPluginsConvention> pluginsConventionFunc)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
_pluginsConventionFunc = pluginsConventionFunc;
|
||||
|
||||
_plugins = LoadPlugins();
|
||||
_selectedPlugin = string.Empty;
|
||||
}
|
||||
|
||||
private Dictionary<string, IPluginsConvention> LoadPlugins()
|
||||
{
|
||||
// TODO Заполнить IPluginsConvention
|
||||
// TODO Заполнить пункт меню "Компоненты" на основе IPluginsConvention.PluginName
|
||||
// TODO Например, создавать ToolStripMenuItem, привязывать к ним обработку событий и добавлять в menuStrip
|
||||
Dictionary<string, IPluginsConvention> result = [];
|
||||
|
||||
List<string> 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);
|
||||
|
Loading…
Reference in New Issue
Block a user