Exemple #1
0
        /// <summary>
        /// 启动模块,由模块管理器启动模块
        /// <param name="FullClassName">插件全名</param>
        /// <param name="Parameters">插件初始化参数,一般为空</param>
        /// </summary>
        public static IModule ModuleLaunch(string FullClassName, params object[] Parameters)
        {
            IModuleManager manager = LemonEnvironment.GetInstance().ModuleManager;
            IModule        m       = manager.LaunchModule(FullClassName, Parameters);

            return(m);
        }
Exemple #2
0
        /// <summary>
        /// 查找指定名称的模块
        /// </summary>
        /// <returns></returns>
        public static IModule ModuleFind(string FullClassName)
        {
            IModuleManager manager = LemonEnvironment.GetInstance().ModuleManager;
            IModule        m       = manager.FindRunningModule(FullClassName);

            return(m);
        }
Exemple #3
0
        /// <summary>
        /// 开始的模块
        /// 这里需要重写
        /// </summary>
        protected virtual void BeginModule()
        {
            this.WatingProgram.ShowDialog();
            foreach (string dmname in LemonEnvironment.GetInstance().BeginModules)
            {
                IModule module = Lemon.ModuleLaunch(dmname);
                if (module == null)
                {
                    this.WatingProgram.CloseDialog();
                    Lemon.SendMsgError("默认启动模块创建失败");
                    return;
                }
                //SetActive moduleInitialize = new SetActive(module.Initialize);
                //this.Invoke(moduleInitialize);
            }
            //while (!this.IsHandleCreated) ;
            //module.Initialize();
            this.WatingProgram.CloseDialog();

            DelgLemonMainTread objSet = delegate(string str)
            {
                Thread   t1   = new Thread(new ParameterizedThreadStart(Thread1));
                object[] pas1 = { 500 };
                t1.IsBackground = true;
                t1.Start(pas1);
            };

            this.Invoke(objSet, new object[] { "" });
        }
Exemple #4
0
        /// <summary>
        /// 判断指定的调用者上是否存在参数的动作
        /// </summary>
        /// <param name="InvokeObject"></param>
        /// <param name="ActionName"></param>
        /// <param name="InvokeProcessor"></param>
        /// <returns></returns>
        public static bool HasAction(object InvokeObject, string ActionName, ActionType Type, Delegate InvokeProcessor)
        {
            bool result = LemonEnvironment.GetInstance().ActionsManager.HasAction(ActionName, Type, InvokeObject, InvokeProcessor, null);


            return(result);
        }
Exemple #5
0
 protected virtual void ShowdownModule()
 {
     foreach (string dmname in LemonEnvironment.GetInstance().ShowdownModules)
     {
         IModule module = Lemon.ModuleLaunch(dmname);
     }
 }
Exemple #6
0
        /// <summary>
        /// 创建并获取指定泛型类型的对象的动态代理实例,该实例在切向捕捉对象控制范围内
        /// </summary>
        /// <param name="FullClassName"></param>
        /// <param name="AssemblyPath"></param>
        /// <param name="Parameters">参数</param>
        /// <returns></returns>
        public static T GetInstance <T>(string AssemblyPath, string FullClassName, params object[] Parameters)
        {
            T          result = default(T);
            ClassDrive cdiv   = new ClassDrive();

            try
            {
                if (LemonEnvironment.GetInstance().UseProxy)
                {
                    result = cdiv.ProxyInstance <T>(FullClassName, AssemblyPath, Parameters);
                }
                else
                {
                    result = cdiv.Instance <T>(AssemblyPath, FullClassName, Parameters);
                }
            }
            catch
            {
                string        str    = "创建对象实例失败。 AssemblyPath:" + AssemblyPath + " FullClassName:" + FullClassName;
                MessageObject newmsg = new MessageObject(MessageType.Error);
                newmsg.Message = str;
                MessageFactory.GetMegBus().Send(newmsg);
            }
            return(result);
        }
Exemple #7
0
        /// <summary>
        /// 获取连接字符串
        /// </summary>
        /// <returns></returns>
        public string GetConnectString()
        {
            ILemonEnvironment config = LemonEnvironment.GetInstance();

            return(config.BllConfig.GetConfig <ILemonEnvironment>().DatabaseConn);
            //return "";
        }
Exemple #8
0
        ///// <summary>
        ///// 对参数窗体进行基本样式设置, 置顶窗口
        ///// </summary>
        ///// <param name="TargetForm"></param>
        //public static void SetFormDefaultStyleTopMost(Form TargetForm)
        //{
        //    TargetForm.WindowState = FormWindowState.Normal;
        //    TargetForm.FormBorderStyle = FormBorderStyle.FixedDialog;
        //    TargetForm.TopMost = true;
        //    TargetForm.ShowIcon = false;
        //    TargetForm.ShowInTaskbar = false;
        //    TargetForm.MaximizeBox = false;
        //    TargetForm.MinimizeBox = false;
        //    TargetForm.Dock = DockStyle.None;
        //}
        ///// <summary>
        ///// 对参数窗体进行基本样式设置,使其融入框架风格
        ///// </summary>
        ///// <param name="TargetForm"></param>
        //public static void SetFormDefaultStyle(Form TargetForm)
        //{
        //    TargetForm.Invoke(new SetWindow(FormDefaultStyle),TargetForm);

        //}
        ///// <summary>
        /////
        ///// </summary>
        ///// <param name="TargetForm"></param>
        //private static void FormDefaultStyle(Form TargetForm)
        //{
        //    TargetForm.WindowState = FormWindowState.Normal;
        //    TargetForm.FormBorderStyle = FormBorderStyle.FixedDialog;
        //    TargetForm.TopMost = true;
        //    TargetForm.ShowIcon = false;
        //    TargetForm.ShowInTaskbar = false;
        //    TargetForm.MdiParent = (Form)Lemon.GetMainForm();
        //    TargetForm.MaximizeBox = false;
        //    TargetForm.MinimizeBox = false;
        //    TargetForm.Dock = DockStyle.None;
        //}
        /// <summary>
        /// 设置框架的布局
        /// </summary>
        /// <param name="LayoutName"></param>
        public static void SetLayout(string LayoutName)
        {
            if (LemonEnvironment.GetInstance().UIManager != null)
            {
                LemonEnvironment.GetInstance().UIManager.SetLayout(LayoutName);
            }
        }
Exemple #9
0
        /// <summary>
        /// 框架版本
        /// </summary>
        protected virtual void LemonadeVersion()
        {
            this.listBox2.Items.Clear();
            ILemonEnvironment           envir  = LemonEnvironment.GetInstance();
            Dictionary <string, string> asmdic = new Dictionary <string, string>();

            this.SetValue(envir.ActionsManager, ref asmdic);
            this.SetValue(envir.CSFMain, ref asmdic);
            this.SetValue(envir.Guardian, ref asmdic);
            this.SetValue(envir.MenuItemFactory, ref asmdic);
            this.SetValue(envir.ModuleHandles, ref asmdic);
            this.SetValue(envir.ModuleManager, ref asmdic);
            this.SetValue(envir.SwapPool, ref asmdic);
            this.SetValue(envir.ToolsBarManager, ref asmdic);
            this.SetValue(envir.UIManager, ref asmdic);
            //foreach (ModuleInfo info in Lemon.ModuleInfos)
            //{

            //    string name = envir.ActionsManager.GetType().Name;
            //    string version = envir.ActionsManager.GetType().Assembly.GetName().Version.ToString();
            //    if (!asmdic.ContainsKey(name))
            //    {
            //        asmdic.Add(name, version);
            //    }
            //}
            foreach (string kname in asmdic.Keys)
            {
                this.listBox2.Items.Add(kname + "    " + asmdic[kname].ToString());
            }
        }
Exemple #10
0
 /// <summary>
 /// 设置窗体工具栏
 /// </summary>
 /// <returns></returns>
 public static void SetWindowToolsBar(Form TargetForm)
 {
     Tools.IToolsBarManager manager = LemonEnvironment.GetInstance().ToolsBarManager;
     if (manager != null)
     {
         manager.CreateToolsBarToForm(TargetForm);
     }
 }
Exemple #11
0
        /// <summary>
        /// 创建系统配置
        /// </summary>
        public virtual ILemonEnvironment DeployConfig()
        {
            ILemonEnvironment sysconfig = LemonEnvironment.GetInstance();

            Lemonade.Frame.BLL.IConfigFactory configsetup = new Lemonade.Frame.BLL.ConfigFactory(AppDomain.CurrentDomain.BaseDirectory + "\\config\\", sysconfig, this.displayFrm);
            configsetup.Processing();
            return(sysconfig);
        }
Exemple #12
0
 /// <summary>
 /// 获取分组工具栏项
 /// </summary>
 /// <returns></returns>
 public static List <IToolsItem> GetGroupToolsItem(string GroupName)
 {
     Tools.IToolsBarManager manager = LemonEnvironment.GetInstance().ToolsBarManager;
     if (manager != null)
     {
         return(manager.GetGroupItem(GroupName));
     }
     return(null);
 }
Exemple #13
0
 /// <summary>
 /// 获取分组工具栏项
 /// </summary>
 /// <returns></returns>
 public static List <IToolsItem> GetToolsItem()
 {
     Tools.IToolsBarManager manager = LemonEnvironment.GetInstance().ToolsBarManager;
     if (manager != null)
     {
         return(manager.GetItemAll());
     }
     return(null);
 }
Exemple #14
0
        /// <summary>
        /// 使用框架动作管理器向调用者添加动作,自动响应内置的动作处理机制,注册后自动激活动作
        /// </summary>
        /// <param name="InvokeObject">调用者</param>
        /// <param name="ActionName">动作名称</param>
        /// <param name="Type">动作类型</param>
        /// <param name="InvokeProcessor">处理者</param>
        /// <param name="Performer">在动作注销时执行的委托</param>
        public static bool ActionAppend(object InvokeObject, string ActionName, ActionType Type, Delegate InvokeProcessor, ActionPerformer Performer = null)
        {
            bool isCup = LemonEnvironment.GetInstance().ActionsManager.CreateAction(ActionName, Type, InvokeObject, InvokeProcessor, Performer);

            if (isCup)
            {
                Lemon.ActionActivate(InvokeObject);
            }
            return(isCup);
        }
Exemple #15
0
 /// <summary>
 /// 获取当前的布局
 /// </summary>
 /// <returns></returns>
 public static ILayout GetLayoutCurrent()
 {
     if (LemonEnvironment.GetInstance().UIManager != null)
     {
         return(LemonEnvironment.GetInstance().UIManager.GetLayout(LemonEnvironment.GetInstance().UIManager.CurrentLayoutName));
     }
     else
     {
         return(null);
     }
 }
Exemple #16
0
 /// <summary>
 /// 获取当前框架运行的界面布局名称
 /// </summary>
 /// <returns></returns>
 public static string GetCurrentLayoutName()
 {
     if (LemonEnvironment.GetInstance().UIManager != null)
     {
         return(LemonEnvironment.GetInstance().UIManager.CurrentLayoutName);
     }
     else
     {
         return("");
     }
 }
Exemple #17
0
 /// <summary>
 /// 获取框架的界面管理器,设置窗体的样式,这是框架对所有窗体设置的入口方法
 /// </summary>
 /// <returns></returns>
 public static bool SetLayoutWindowStyle(Form TargetWindow)
 {
     if (LemonEnvironment.GetInstance().UIManager != null)
     {
         return(LemonEnvironment.GetInstance().UIManager.SetLayoutWindow(TargetWindow));
     }
     else
     {
         Lemon.SendMsgError("UI管理器没有正常实例化,框架无法设置窗体样式。");
         return(false);
     }
 }
Exemple #18
0
 /// <summary>
 /// 获取具备工具栏配置的窗体名称列表
 /// </summary>
 /// <returns></returns>
 public static List <string> GetToolsBarFormName()
 {
     Tools.IToolsBarManager manager = LemonEnvironment.GetInstance().ToolsBarManager;
     if (manager != null)
     {
         return(manager.ParentFormNames);
     }
     else
     {
         return(null);
     }
 }
Exemple #19
0
        /// <summary>
        /// 根据类全名查找交换池中的对象实例
        /// </summary>
        public static List <ISwap> SwapFindObjects(string FullClassName)
        {
            List <ISwap> result = null;

            result = LemonEnvironment.GetInstance().SwapPool.FindSwaps(FullClassName);
            //if (result != null)
            //{
            //    if (swap.PackageObject != null)
            //    {
            //        result = swap.PackageObject;
            //    }
            //}
            return(result);
        }
Exemple #20
0
        /// <summary>
        /// 根据类全名查找交换池中的对象实例
        /// </summary>
        public static object SwapFindObject(string FullClassName)
        {
            object result = null;
            ISwap  swap   = LemonEnvironment.GetInstance().SwapPool.FindSwap(FullClassName);

            if (swap != null)
            {
                if (swap.PackageObject != null)
                {
                    result = swap.PackageObject;
                }
            }
            return(result);
        }
Exemple #21
0
        /// <summary>
        /// 根据自定义交换匹配实例查找交换池中的对象实例
        /// </summary>
        public static object SwapFindObject(ISwapMatch Match)
        {
            object result = null;
            ISwap  swap   = LemonEnvironment.GetInstance().SwapPool.FindSwap(Match);

            if (swap != null)
            {
                if (swap.PackageObject != null)
                {
                    result = swap.PackageObject;
                }
            }
            return(result);
        }
Exemple #22
0
        /// <summary>
        /// 添加数据交换对象,同时添加自定义关键字
        /// </summary>
        public static int SwapAppend(object Obj, params object[] CustomKey)
        {
            List <object> ck = new List <object>();

            if (CustomKey != null)
            {
                foreach (object s in CustomKey)
                {
                    ck.Add(s);
                }
            }
            ISwap swap = LemonEnvironment.GetInstance().SwapPool.CreateSwap(Obj, ck);

            return(LemonEnvironment.GetInstance().SwapPool.AddSwapping(swap));
        }
Exemple #23
0
 /// <summary>
 /// 开始的模块
 /// 这里需要重写
 /// </summary>
 protected virtual void BeginModule()
 {
     this.WatingProgram.ShowDialog();
     foreach (string dmname in LemonEnvironment.GetInstance().BeginModules)
     {
         IModule module = Lemon.ModuleLaunch(dmname);
         if (module == null)
         {
             this.WatingProgram.CloseDialog();
             Lemon.SendMsgError("默认启动模块创建失败");
             return;
         }
         //SetActive moduleInitialize = new SetActive(module.Initialize);
         //this.Invoke(moduleInitialize);
     }
     //while (!this.IsHandleCreated) ;
     //module.Initialize();
     this.WatingProgram.CloseDialog();
 }
Exemple #24
0
        /// <summary>
        /// 根据类全名查找交换池中的对象实例
        /// <param name="IsMulti">是否查询多个</param>
        /// <param name="Keys">任意多个参数,待查询对象的关键字必须完全包含该参数</param>
        /// </summary>
        public static List <object> SwapFindObject(bool IsMulti, params object[] Keys)
        {
            List <object> result = new List <object>();

            if (Keys == null)
            {
                return(null);
            }
            if (IsMulti)
            {
                List <ISwap> swaps = LemonEnvironment.GetInstance().SwapPool.FindSwaps(Keys.ToList());
                if (swaps != null)
                {
                    foreach (ISwap swap in swaps)
                    {
                        if (swap != null)
                        {
                            if (swap.PackageObject != null)
                            {
                                result.Add(swap.PackageObject);
                            }
                        }
                    }
                }
            }
            else
            {
                ISwap swap = LemonEnvironment.GetInstance().SwapPool.FindSwap(Keys.ToList());
                if (swap != null)
                {
                    if (swap.PackageObject != null)
                    {
                        result.Add(swap.PackageObject);
                    }
                }
            }
            return(result);
        }
Exemple #25
0
        /// <summary>
        /// 创建并获取指定泛型类型的对象的动态代理实例,使该实例在切向捕捉对象控制范围内
        /// </summary>
        /// <param name="InitType"></param>
        /// <param name="Parameters">参数</param>
        /// <returns></returns>
        public static T GetInstance <T>(Type InitType, params object[] Parameters)
        {
            T          result = default(T);
            ClassDrive cdiv   = new ClassDrive();

            try
            {
                if (LemonEnvironment.GetInstance().UseProxy)
                {
                    result = cdiv.ProxyInstance <T>(InitType, Parameters);
                }
                else
                {
                    result = cdiv.Instance <T>(InitType, Parameters);
                }
            }
            catch {
                string        str    = "创建对象实例失败。 " + InitType.ToString();
                MessageObject newmsg = new MessageObject(MessageType.Error);
                newmsg.Message = str;
                MessageFactory.GetMegBus().Send(newmsg);
            }
            return(result);
        }
Exemple #26
0
        /// <summary>
        /// 根据关键字查找
        /// <param name="Keys">任意多个参数,待查询对象的关键字必须完全包含该参数</param>
        /// </summary>
        public static T SwapFindOneObject <T>(params object[] Keys)
        {
            T result = default(T);

            if (Keys == null)
            {
                return(result);
            }
            else
            {
                ISwap swap = LemonEnvironment.GetInstance().SwapPool.FindSwap(Keys.ToList());
                if (swap != null)
                {
                    if (swap.PackageObject != null)
                    {
                        if (swap.PackageObject.GetObjTypeFromProxy() == typeof(T))
                        {
                            result = (T)swap.PackageObject;
                        }
                    }
                }
            }
            return(result);
        }
Exemple #27
0
 /// <summary>
 /// 根据一个异常标示符获取系统自定义异常信息
 /// </summary>
 /// <param name="SourceExceptionMessage"></param>
 /// <returns></returns>
 public static string SystemCustomException(string SourceExceptionMessage)
 {
     return(LemonEnvironment.GetInstance().ExDefine.GetCustomException(SourceExceptionMessage));
 }
Exemple #28
0
 /// <summary>
 /// 设置是否使用aop
 /// </summary>
 /// <param name="Use"></param>
 public static void SetEnviUseProxy(bool Use)
 {
     LemonEnvironment.GetInstance().UseProxy = Use;
 }
Exemple #29
0
 /// <summary>
 /// 获取当前可以控制的窗体名称
 /// </summary>
 /// <returns></returns>
 public static List <string> GetLayoutForms()
 {
     return(LemonEnvironment.GetInstance().UIManager.GetControlleds);
 }
Exemple #30
0
        /// <summary>
        /// 移除模块
        /// </summary>
        /// <param name="Module"></param>
        public static void ModuleRemove(IModule Module)
        {
            IModuleManager manager = LemonEnvironment.GetInstance().ModuleManager;

            manager.TurnOffModule(Module.ModuleName);
        }