private Dictionary <Type, Type> GetDataAccessType(string fileName) { Type typeFrom = null; Type typeTo = null; var pluginExplorer = new PluginExplorer(); var typeExploreredCollection = pluginExplorer.GetPlugins(Constants.DataAccessPluginFolder); var types = new List <Type>(); foreach (var items in typeExploreredCollection) { typeFrom = items.Key; foreach (var item in items.Value) { types.Add(item); } } var pluginSelector = new PluginSelector(); typeTo = pluginSelector.GetSelected(fileName, types); var mapping = new Dictionary <Type, Type>(); if (typeFrom != null && typeTo != null) { mapping.Add(typeFrom, typeTo); } return(mapping); }
public PluginSelectorPanel(PluginSelector input) : this() { mPlugin = input; mPlugin.PluginAdded += new Action <ISystemPlugin>(mPlugin_PluginAdded); foreach (var inpt in mPlugin.Plugins) { mPlugin_PluginAdded(inpt); } }
/// <summary> /// Перестраивает панель с формами /// </summary> private void refreshControlPanel() { List <Parameter> general = new List <Parameter>(); general.Add(Parameter.Double("Левая граница", 0)); general.Add(Parameter.Double("Правая граница", 10)); general.Add(Parameter.Double("Шаг", 0.1)); List <Parameter> noise = new List <Parameter>(); noise.Add(Parameter.Double("Коэффицент", 0.3)); noise.Add(new Parameter.BooleanParameter("Тип погрешности", "Относительная", "Абсолютная", true)); generalForm = new Form(general); generalFormControl.Content = generalForm; generatorSelector = new PluginSelector(typeof(IGenerator)); generatorSelectorControl.Content = generatorSelector; if (generatorSelector.Children[0] is ComboBox) { ComboBox com = generatorSelector.Children[0] as ComboBox; com.Loaded += UpdateWindow; com.SelectionChanged += UpdateWindow; } noiseForm = new Form(noise); noiseFormControl.Content = noiseForm; noiseSelector = new PluginSelector(typeof(INoise)); noiseSelectorControl.Content = noiseSelector; if (noiseSelector.Children[0] is ComboBox) { ComboBox com = generatorSelector.Children[0] as ComboBox; com.Loaded += UpdateWindow; com.SelectionChanged += UpdateWindow; } }