/// <summary>
        /// 将控件添加到单多例工厂中
        /// </summary>
        /// <param name="singCon"></param>
        public static bool addPrototypeCache(DefaultNameEnum name, Control protCon)
        {
            bool retBool = false;

            try {
                string key = EnumUtils.GetDescription(name);
                if (protCon == null)
                {
                    return(retBool);
                }
                if (prototypeCache.ContainsKey(key))
                {
                    Control[]      arr  = prototypeCache[key];
                    List <Control> list = arr.ToList();
                    list.Add(protCon);
                    prototypeCache[key] = list.ToArray();
                }
                else
                {
                    prototypeCache.Add(key, new Control[] { protCon });
                }
                retBool = true;
            } catch (Exception ex) {
                retBool = false;
            }

            return(retBool);
        }
Exemple #2
0
        /// <summary>
        /// 将窗体添加到多例工厂中
        /// </summary>
        public static bool addPrototypeCache(DefaultNameEnum name, Form protForm)
        {
            bool retBool = false;

            try {
                string key = EnumUtils.GetDescription(name);
                if (protForm == null)
                {
                    return(retBool);
                }
                protForm.FormClosed += (object sender, FormClosedEventArgs e) => {
                    remPrototypeCache(EnumUtils.GetStrToDefaultName(((Form)sender).Name), (Form)sender);
                };
                if (prototypeCache.ContainsKey(key))
                {
                    Form[]      formArr = prototypeCache[key];
                    List <Form> formL   = formArr.ToList();
                    formL.Add(protForm);
                    prototypeCache[key] = formL.ToArray();
                }
                else
                {
                    prototypeCache.Add(key, new Form[] { protForm });
                }
                retBool = true;
            } catch (Exception ex) {
                retBool = false;
            }
            return(retBool);
        }
 /// <summary>
 /// 获取指定单例控件中的某种类型的全部子控件
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="singConName"></param>
 /// <returns></returns>
 public static T[] getSingletonChildCon <T>(DefaultNameEnum singConName) where T : Control
 {
     T[] retAll = null;
     // 全局单例控件工厂
     if (singletonCache.ContainsKey(EnumUtils.GetDescription(singConName)))
     {
         // 全局单例控件工厂
         Dictionary <string, Control> single = ControlCacheFactory.getSingletonCache();
         if (single.ContainsKey(EnumUtils.GetDescription(DefaultNameEnum.TOOL_START)) && single.ContainsKey(EnumUtils.GetDescription(DefaultNameEnum.TAB_CONTENT)))
         {
             // 获取指定姓名的控件
             Control tabParent = single[EnumUtils.GetDescription(singConName)];
             if (tabParent != null)
             {
                 List <T> conList = new List <T>();
                 ControlsUtils.GetAllControlByType(ref conList, tabParent.Controls);
                 if (conList != null && conList.Count > 0)
                 {
                     retAll = conList.ToArray();
                 }
             }
         }
     }
     return(retAll);
 }
Exemple #4
0
        /// <summary>
        /// 移除在顶层窗口缓存的指定窗体
        /// </summary>
        /// <param name="key"></param>
        /// <param name="protForm"></param>
        public static void remTopFormCache(DefaultNameEnum name)
        {
            string key = EnumUtils.GetDescription(name);

            if (topFormCache.ContainsKey(key))
            {
                topFormCache.Remove(key);
            }
        }
Exemple #5
0
        /// <summary>
        /// 移除在单例窗口缓存的指定窗体
        /// </summary>
        /// <param name="key"></param>
        /// <param name="protForm"></param>
        public static void remSingletonCache(DefaultNameEnum name)
        {
            string key = EnumUtils.GetDescription(name);

            if (singletonCache.ContainsKey(key))
            {
                singletonCache.Remove(key);
            }
        }
Exemple #6
0
        /// <summary>
        /// 获取多例模式下的窗口
        /// </summary>
        /// <param name="isShowTop">是否显示为顶层窗体</param>
        /// <returns></returns>
        public static Form getPrototypeForm(DefaultNameEnum name, bool isShowTop)
        {
            Form form = null;
            IComponentInitMode <Form> mode = getInitFormRelation(name);

            if (mode != null)
            {
                form = mode.initPrototypeExample(isShowTop);
            }
            return(form);
        }
Exemple #7
0
        /// <summary>
        /// 获取多例模式下的控件
        /// </summary>
        /// <param name="isShowTop">是否显示为顶层控件</param>
        /// <returns></returns>
        public static Control getPrototypeControl(DefaultNameEnum name, bool isShowTop)
        {
            Control con = null;
            IComponentInitMode <Control> mode = getInitControlRelation(name);

            if (mode != null)
            {
                con = mode.initPrototypeExample(isShowTop);
            }
            return(con);
        }
Exemple #8
0
        /// <summary>
        /// 根据窗口名获取多例工厂中的对应窗口
        /// </summary>
        /// <param name="name">窗口名</param>
        /// <returns>获取到的窗体</returns>
        public static Form[] getPrototypeCache(DefaultNameEnum name)
        {
            string key = EnumUtils.GetDescription(name);

            if (prototypeCache.ContainsKey(key))
            {
                return(prototypeCache[key]);
            }
            else
            {
                return(null);
            }
        }
Exemple #9
0
        /// <summary>
        /// 根据窗口名获取单例工厂中的对应窗口
        /// </summary>
        /// <param name="name">窗口名</param>
        /// <returns>获取到的窗体</returns>
        public static Form getSingletonCache(DefaultNameEnum name)
        {
            string key = EnumUtils.GetDescription(name);

            if (singletonCache.ContainsKey(key))
            {
                return(singletonCache[key]);
            }
            else
            {
                return(null);
            }
        }
Exemple #10
0
        /// <summary>
        /// 获取单例模式下的窗口
        /// </summary>
        /// <param name="isShowTop">是否显示为顶层窗体</param>
        /// <returns></returns>
        public static Form getSingleForm(DefaultNameEnum name, bool isShowTop)
        {
            Form form = FormCacheFactory.getSingletonCache(name);

            if (form == null || form.IsDisposed)
            {
                IComponentInitMode <Form> mode = getInitFormRelation(name);
                if (mode != null)
                {
                    form = mode.initSingleExample(isShowTop);
                }
            }
            return(form);
        }
Exemple #11
0
        /// <summary>
        /// 获取单例模式下的控件
        /// </summary>
        /// <param name="isShowTop">是否显示为顶层控件</param>
        /// <returns></returns>
        public static Control getSingleControl(DefaultNameEnum name, bool isShowTop)
        {
            Control con = ControlCacheFactory.getSingletonCache(name);

            if (con == null || con.IsDisposed)
            {
                IComponentInitMode <Control> mode = getInitControlRelation(name);
                if (mode != null)
                {
                    con = mode.initSingleExample(isShowTop);
                }
            }
            return(con);
        }
Exemple #12
0
        private static IComponentInitMode <Control> getInitControlRelation(DefaultNameEnum name)
        {
            IComponentInitMode <Control> mode = null;

            if (DefaultNameEnum.ADD_PAGE_BUTTON.Equals(name))
            {
                mode = new RedrawAddPageBut();
            }
            else if (DefaultNameEnum.DATA_GRID_VIEW_REDRAW.Equals(name))
            {
                mode = new RedrawDataTable();
            }
            else if (DefaultNameEnum.MAIN_CONTAINER.Equals(name))
            {
                mode = new RedrawMainContainer();
            }
            else if (DefaultNameEnum.TAB_CONTENT.Equals(name))
            {
                mode = new RedrawTabControl();
            }
            else if (DefaultNameEnum.TAB_PAGE_NAME.Equals(name))
            {
                mode = new RedrawTabPage();
            }
            else if (DefaultNameEnum.TEXTBOX_NAME_DEF.Equals(name))
            {
                mode = new RedrawTextBox();
            }
            else if (DefaultNameEnum.TEXT_RIGHT_MENU.Equals(name))
            {
                mode = new TextRightMenu();
            }
            else if (DefaultNameEnum.DATA_VIEW_RIGHT_MENU.Equals(name))
            {
                mode = new DataGridViewRightMenu();
            }
            else if (DefaultNameEnum.TOOL_START.Equals(name))
            {
                mode = new RedrawStatusBar();
            }
            else if (DefaultNameEnum.PROMPT_MESSAGE.Equals(name))
            {
                mode = new RedrawPromptMessBut();
            }
            return(mode);
        }
Exemple #13
0
        /// <summary>
        /// 移除在多例窗口缓存的指定窗体
        /// </summary>
        /// <param name="key"></param>
        /// <param name="protForm"></param>
        public static void remPrototypeCache(DefaultNameEnum name, Form protForm)
        {
            string key = EnumUtils.GetDescription(name);

            if (protForm == null)
            {
                return;
            }
            if (prototypeCache.ContainsKey(key))
            {
                Form[]      formArr = prototypeCache[key];
                List <Form> formL   = formArr.ToList();
                if (formL.Contains(protForm))
                {
                    formL.Remove(protForm);
                }
                prototypeCache[key] = formL.ToArray();
            }
        }
Exemple #14
0
        private static IComponentInitMode <Form> getInitFormRelation(DefaultNameEnum name)
        {
            IComponentInitMode <Form> mode = null;

            if (DefaultNameEnum.CREAD_JAVA_ENTITY.Equals(name))
            {
                mode = new CreadJavaEntity();
            }
            else if (DefaultNameEnum.ADD_CHARS_FORM.Equals(name))
            {
                mode = new AddCharsForm();
            }
            else if (DefaultNameEnum.FIND_REPLACE_FORM.Equals(name))
            {
                mode = new FindAndReplace();
            }
            else if (DefaultNameEnum.SPLIT_CHARS_FORM.Equals(name))
            {
                mode = new SplitCharsForm();
            }
            else if (DefaultNameEnum.ROW_GOTO_FORM.Equals(name))
            {
                mode = new RowGoToForm();
            }
            else if (DefaultNameEnum.SET_CODING_FORM.Equals(name))
            {
                mode = new SetCodingForm();
            }
            else if (DefaultNameEnum.THEREOF_FORM.Equals(name))
            {
                mode = new ThereofForm();
            }
            else if (DefaultNameEnum.CHARS_STATISTICS.Equals(name))
            {
                mode = new CharsStatistics(getPageTextBox());
            }
            return(mode);
        }
Exemple #15
0
 public static Form getPrototypeForm(DefaultNameEnum name)
 {
     return(getPrototypeForm(name, false));
 }
Exemple #16
0
 public static Form getSingleForm(DefaultNameEnum name)
 {
     return(getSingleForm(name, false));
 }
Exemple #17
0
 public static Control getSingleControl(DefaultNameEnum name)
 {
     return(getSingleControl(name, false));
 }
Exemple #18
0
 public static Control getPrototypeControl(DefaultNameEnum name)
 {
     return(getPrototypeControl(name, false));
 }