/// <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); }
/// <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); }
/// <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); } }
/// <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); } }
/// <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); }
/// <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); }
/// <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); } }
/// <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); } }
/// <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); }
/// <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); }
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); }
/// <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(); } }
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); }
public static Form getPrototypeForm(DefaultNameEnum name) { return(getPrototypeForm(name, false)); }
public static Form getSingleForm(DefaultNameEnum name) { return(getSingleForm(name, false)); }
public static Control getSingleControl(DefaultNameEnum name) { return(getSingleControl(name, false)); }
public static Control getPrototypeControl(DefaultNameEnum name) { return(getPrototypeControl(name, false)); }