/// <summary> /// 加载插件 /// </summary> public void LoadPlugins() { if (PluginManager == null) { PluginManager = new Plugins.PluginManager(); } PluginManager.LoadPathDirectory = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Plugins"); PluginManager.PluginNameEx = "Script_Plugin"; PluginManager.PluginMainInputClassName = "MainClass"; PluginManager.LoadPlugins(); foreach (var item in PluginManager.PluginItems) { if (Controls.Contains(item.ScriptPlugin.Name) == true) { MessageBox.Show("插件 : " + item.ScriptPlugin.Name + ", 已经存在!加载失败!"); continue; } item.ScriptPlugin.Start(); Controls.Add(item.ScriptPlugin.Name); if (item.ScriptPlugin.PluginType == PluginInterface.PluginType.WPF) { mainContent.AddUserControl(item.ScriptPlugin.Name, item.ScriptPlugin.GetPluginInterface() as FrameworkElement , ChangeLayout(item.ScriptPlugin.LayoutType), item.ScriptPlugin.Name); } else { mainContent.AddUserControl(item.ScriptPlugin.Name, item.ScriptPlugin.GetPluginInterface() as System.Windows.Forms.Control , ChangeLayout(item.ScriptPlugin.LayoutType), item.ScriptPlugin.Name); } } }
public void InitMindMate(IMainForm mainForm) { this.mainForm = mainForm; MetaModel.MetaModel.Initialize(); schedular = new TaskSchedular.TaskSchedular(); PersistenceManager = new PersistenceManager(); pluginManager = new Plugins.PluginManager(this); new TabController(this, mainForm); pluginManager.Initialize(); statusBarCtrl = new WinFormsStatusBarCtrl(mainForm.StatusBar, PersistenceManager); NodeContextMenu = new NodeContextMenu(); mainForm.Load += mainForm_Load; mainForm.Shown += mainForm_AfterReady; }
public void InitMindMate(IMainForm mainForm, DialogManager dialogs) { this.mainForm = mainForm; MetaModel.MetaModel.Initialize(); schedular = new TaskScheduler.TaskScheduler(); PersistenceManager = new PersistenceManager(); pluginManager = new Plugins.PluginManager(this); new TabController(this, mainForm); pluginManager.Initialize(); Dialogs = dialogs; Dialogs.StatusBarCtrl = new WinFormsStatusBarCtrl(mainForm.StatusBar, PersistenceManager); NodeContextMenu = new NodeContextMenu(); mainForm.Load += mainForm_Load; mainForm.Shown += mainForm_AfterReady; // changing side bar tab gives focus away to tab control header, below event focuses relevant control again mainForm.SideBarTabs.SelectedIndexChanged += SideBarTabs_SelectedIndexChanged; }