/// <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);
                }
            }
        }
コード例 #2
0
ファイル: MainCtrl.cs プロジェクト: tuga1975/MindMate
 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;
 }
コード例 #3
0
ファイル: MainCtrl.cs プロジェクト: xtuzy/MindMate
 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;
 }
コード例 #4
0
ファイル: MainCtrl.cs プロジェクト: umaranis/MindMate
 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;
 }