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