예제 #1
0
        /// <summary>
        /// 加载模块方法
        /// </summary>
        /// <param name="msg">加载进度</param>
        /// <param name="moduleMenus">模块的菜单</param>
        public void LoadModules(IMsg msg, MenuStrip moduleMenus)
        {
            try
            {
                //加载Dev组件
                ModuleLoadDevComponent loader = new ModuleLoadDevComponent();

                _Modules = loader.GetModuleList(); //从运行目录中搜索模块文件
                foreach (ModuleInfo m in _Modules) //枚举模块文件
                {
                    if (!loader.LoadModule(m))
                    {
                        continue;                        //加载失败,继续Load下一个模块
                    }
                    //当前模块是否分配了权限.(当前用户是否有这个模块的权限).
                    //没有权限继续Load下一个模块
                    if (!loader.CanAccessModule(SystemAuthentication.UserAuthorities))
                    {
                        loader.ClearAssemble();
                        continue;
                    }

                    _ModulesLoadSucceed.Add(loader.ModuleMainForm);             //保存已加载的模块

                    msg.UpdateMessage("正在加载:" + loader.GetCurrentModuleName()); //显示加载进度
                    loader.LoadGUI(_tabControlModules);                         //将模块的功能按钮容器集成到主窗体的TabControl内
                    loader.LoadMenu(moduleMenus);                               //加载模块的菜单,集成到主窗体的主菜单内
                    (loader.ModuleMainForm as Form).MdiParent = _MDIMainForm;   //模块的主窗体也作为一个子窗体, 设置父窗体.
                }

                GC.Collect();//加载模块消耗内存,及时回收部分内存
            }
            catch (Exception ex) { Msg.ShowException(ex); }
        }
예제 #2
0
        /// <summary>
        /// 初始化MDI主窗体,在登录窗体显示加载状态。
        /// </summary>
        /// <param name="splash">登录窗体上的进度显示组件</param>
        public void InitUserInterface(IMsg splash)
        {
            try
            {
                this.SuspendLayout();

                splash.UpdateMessage("正在初始化用户界面...");
                this._MdiToolbar = new DevBarRegister(this, this.barToolButtons);
                this.RegisterMdiButtons();

                splash.UpdateMessage("下载基础数据...");
                CommonData.GetCommonInfos(); //获取其它公共数据
                DataDictCache.RefreshCache();

                splash.UpdateMessage("正在初始化模块容器...");
                _ModuleContainer = (frmModuleContainer)MdiTools.OpenChildForm(this as IMdiForm, typeof(frmModuleContainer), null);
                _ModuleContainer.InitButtons();

                splash.UpdateMessage("正在加载模块...");
                _ModuleManager = new ModuleManager(this, _ModuleContainer.xtraTabControl1); //创建模块管理器
                _ModuleManager.LoadModules(splash, _moduleMenus);                           //加载可用模块

                splash.UpdateMessage("正在初始化用户权限...");
                SystemAuthentication.SetMenuAuthority(_moduleMenus);
                _ModuleManager.SetModuleSecurity(_moduleMenus);

                splash.UpdateMessage("正在加载工具栏(Toolbar)...");
                _ModuleManager.CreateToolButtons(barMainMenu, _moduleMenus);

                splash.UpdateMessage("正在加载导航面板(Navigator Panel)...");
                _ModuleManager.CreateNavBarButtons(this.navBarControl1, _moduleMenus, NavigatorStyle.BarContainer); //创建导航工具栏按钮


                splash.UpdateMessage("加载完毕.");

                this.ResumeLayout();
            }
            catch (Exception ex)
            { Msg.ShowException(ex); }
        }
예제 #3
0
        /// <summary>
        /// 加载模块方法
        /// </summary>
        /// <param name="msg">加载进度</param>
        /// <param name="moduleMenus">模块的菜单</param>
        public void LoadModules(IMsg msg, MenuStrip moduleMenus)
        {
            try
            {
                //加载Dev组件
                ModuleLoadDevComponent loader = new ModuleLoadDevComponent();

                _Modules = loader.GetModuleList();//从运行目录中搜索模块文件
                foreach (ModuleInfo m in _Modules) //枚举模块文件
                {
                    if (!loader.LoadModule(m)) continue; //加载失败,继续Load下一个模块

                    //当前模块是否分配了权限.(当前用户是否有这个模块的权限).
                    //没有权限继续Load下一个模块
                    if (!loader.CanAccessModule(SystemAuthentication.UserAuthorities))
                    {
                        loader.ClearAssemble();
                        continue;
                    }

                    _ModulesLoadSucceed.Add(loader.ModuleMainForm);//保存已加载的模块

                    msg.UpdateMessage("正在加载:" + loader.GetCurrentModuleName());//显示加载进度
                    loader.LoadGUI(_tabControlModules); //将模块的功能按钮容器集成到主窗体的TabControl内
                    loader.LoadMenu(moduleMenus); //加载模块的菜单,集成到主窗体的主菜单内
                    (loader.ModuleMainForm as Form).MdiParent = _MDIMainForm; //模块的主窗体也作为一个子窗体, 设置父窗体.
                }

                GC.Collect();//加载模块消耗内存,及时回收部分内存
            }
            catch (Exception ex) { Msg.ShowException(ex); }
        }
예제 #4
0
        /// <summary>
        /// 初始化MDI主窗体,在登录窗体显示加载状态。
        /// </summary>
        /// <param name="splash">登录窗体上的进度显示组件</param>
        public void InitUserInterface(IMsg splash)
        {
            try
            {
                this.SuspendLayout();

                splash.UpdateMessage("正在初始化用户界面...");
                this._MdiToolbar = new DevBarRegister(this, this.barToolButtons);
                this.RegisterMdiButtons();

                splash.UpdateMessage("下载基础数据...");
                CommonData.GetCommonInfos(); //获取其它公共数据
                DataDictCache.RefreshCache();

                splash.UpdateMessage("正在初始化模块容器...");
                _ModuleContainer = (frmModuleContainer)MdiTools.OpenChildForm(this as IMdiForm, typeof(frmModuleContainer), null);
                _ModuleContainer.InitButtons();

                splash.UpdateMessage("正在加载模块...");
                _ModuleManager = new ModuleManager(this, _ModuleContainer.xtraTabControl1);//创建模块管理器
                _ModuleManager.LoadModules(splash, _moduleMenus); //加载可用模块

                splash.UpdateMessage("正在初始化用户权限...");
                SystemAuthentication.SetMenuAuthority(_moduleMenus);
                _ModuleManager.SetModuleSecurity(_moduleMenus);

                splash.UpdateMessage("正在加载工具栏(Toolbar)...");
                _ModuleManager.CreateToolButtons(barMainMenu, _moduleMenus);

                splash.UpdateMessage("正在加载导航面板(Navigator Panel)...");
                _ModuleManager.CreateNavBarButtons(this.navBarControl1, _moduleMenus, NavigatorStyle.BarContainer); //创建导航工具栏按钮

                splash.UpdateMessage("加载完毕.");

                this.ResumeLayout();
            }
            catch (Exception ex)
            { Msg.ShowException(ex); }
        }