/// <summary> /// Load state /// </summary> /// <param name="clear">clear the existing forms</param> /// <param name="formsFactory">forms factory</param> public void Load(bool clear, FormFactoryHandler formsFactory) { if (clear) { _container.Clear(); } XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load(SavePath); _container.SuspendLayout(); DockableFormInfo selected = null; List <DockableFormInfo> autoHide = new List <DockableFormInfo>(); List <ControlSizeInfo> formsSize = LoadForms(xmlDocument, formsFactory, autoHide, out selected); RestoreSizes(formsSize); foreach (DockableFormInfo toAuto in autoHide) { _container.SetAutoHide(toAuto, true); } if (selected != null) { selected.IsSelected = true; } _container.ResumeLayout(true); }
/// <summary> /// Load form /// </summary> /// <param name="xmlForm">xml form</param> /// <param name="formsFactory">forms factory</param> /// <param name="autoHide">list of autohide forms</param> /// <param name="selected">selected info</param> private ControlSizeInfo AddForm(XmlNode xmlForm, FormFactoryHandler formsFactory, List <DockableFormInfo> autoHide, out DockableFormInfo selected) { selected = null; XmlNode xmlGuid = xmlForm.SelectSingleNode(XmlTags.TagGuid); XmlNode xmlParentGuid = xmlForm.SelectSingleNode(XmlTags.TagParentGuid); XmlNode xmlAllowedDock = xmlForm.SelectSingleNode(XmlTags.TagAllowedDock); XmlNode xmlCurrentDock = xmlForm.SelectSingleNode(XmlTags.TagCurrentDock); XmlNode xmlCurrentMode = xmlForm.SelectSingleNode(XmlTags.TagCurrentMode); XmlNode xmlIsSelected = xmlForm.SelectSingleNode(XmlTags.TagIsSelected); XmlNode xmlIsAutoHide = xmlForm.SelectSingleNode(XmlTags.TagIsAutoHide); XmlNode xmlWidth = xmlForm.SelectSingleNode(XmlTags.TagWidth); XmlNode xmlHeight = xmlForm.SelectSingleNode(XmlTags.TagHeight); Guid identifier = new Guid(xmlGuid.InnerText); zAllowedDock allowedDock = (zAllowedDock)Enum.Parse(typeof(zAllowedDock), xmlAllowedDock.InnerText); Form form = formsFactory(identifier); int width = Convert.ToInt32(xmlWidth.InnerText); int height = Convert.ToInt32(xmlHeight.InnerText); form.Width = width; form.Height = height; DockableFormInfo info = _container.Add(form, allowedDock, identifier); if (PanelAdded != null) { PanelAdded(this, new PanelAddedEventArgs(info)); } if (Convert.ToBoolean(xmlIsSelected.InnerText)) { selected = info; } if (Convert.ToBoolean(xmlIsAutoHide.InnerText)) { autoHide.Add(info); } DockStyle currentDock = (DockStyle)Enum.Parse(typeof(DockStyle), xmlCurrentDock.InnerText); zDockMode currentMode = (zDockMode)Enum.Parse(typeof(zDockMode), xmlCurrentMode.InnerText); if (currentDock != DockStyle.None) { if (xmlParentGuid == null) { _container.DockForm(info, currentDock, currentMode); } else { Guid parentGuid = new Guid(xmlParentGuid.InnerText); DockableFormInfo parentInfo = _container.GetFormInfo(parentGuid); _container.DockForm(info, parentInfo, currentDock, currentMode); } } return(new ControlSizeInfo(form, width, height)); }
/// <summary> /// Load forms /// </summary> /// <param name="xmlDocument">document</param> /// <param name="formsFactory">forms factory</param> /// <returns>list of control size info</returns> /// <param name="autoHide">list of autohide forms</param> /// <param name="selected">selected info</param> private List <ControlSizeInfo> LoadForms(XmlDocument xmlDocument, FormFactoryHandler formsFactory, List <DockableFormInfo> autohide, out DockableFormInfo selected) { selected = null; List <ControlSizeInfo> formsSize = new List <ControlSizeInfo>(); XmlNodeList xmlForms = xmlDocument.SelectNodes("//" + XmlTags.TagForms + "/" + XmlTags.TagForm); for (int index = 0; index < xmlForms.Count; index++) { XmlNode xmlForm = xmlForms[index]; DockableFormInfo selectedForm = null; formsSize.Add(AddForm(xmlForm, formsFactory, autohide, out selectedForm)); if (selectedForm != null) { selected = selectedForm; } } return(formsSize); }
/// <summary> /// Load state /// </summary> /// <param name="clear">clear the existing forms</param> /// <param name="formsFactory">forms factory</param> public void Load(bool clear, FormFactoryHandler formsFactory) { if (clear) { _container.Clear(); } XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load(SavePath); _container.SuspendLayout(); DockableFormInfo selected = null; List<DockableFormInfo> autoHide = new List<DockableFormInfo>(); List<ControlSizeInfo> formsSize = LoadForms(xmlDocument, formsFactory, autoHide, out selected); RestoreSizes(formsSize); foreach (DockableFormInfo toAuto in autoHide) { _container.SetAutoHide(toAuto, true); } if (selected != null) { selected.IsSelected = true; } _container.ResumeLayout(true); }
/// <summary> /// Load forms /// </summary> /// <param name="xmlDocument">document</param> /// <param name="formsFactory">forms factory</param> /// <returns>list of control size info</returns> /// <param name="autoHide">list of autohide forms</param> /// <param name="selected">selected info</param> private List<ControlSizeInfo> LoadForms(XmlDocument xmlDocument, FormFactoryHandler formsFactory, List<DockableFormInfo> autohide, out DockableFormInfo selected) { selected = null; List<ControlSizeInfo> formsSize = new List<ControlSizeInfo>(); XmlNodeList xmlForms = xmlDocument.SelectNodes("//" + XmlTags.TagForms + "/" + XmlTags.TagForm); for (int index = 0; index < xmlForms.Count; index++) { XmlNode xmlForm = xmlForms[index]; DockableFormInfo selectedForm = null; formsSize.Add(AddForm(xmlForm, formsFactory, autohide, out selectedForm)); if (selectedForm != null) { selected = selectedForm; } } return formsSize; }
/// <summary> /// Load form /// </summary> /// <param name="xmlForm">xml form</param> /// <param name="formsFactory">forms factory</param> /// <param name="autoHide">list of autohide forms</param> /// <param name="selected">selected info</param> private ControlSizeInfo AddForm(XmlNode xmlForm, FormFactoryHandler formsFactory, List<DockableFormInfo> autoHide, out DockableFormInfo selected) { selected = null; XmlNode xmlGuid = xmlForm.SelectSingleNode(XmlTags.TagGuid); XmlNode xmlParentGuid = xmlForm.SelectSingleNode(XmlTags.TagParentGuid); XmlNode xmlAllowedDock = xmlForm.SelectSingleNode(XmlTags.TagAllowedDock); XmlNode xmlCurrentDock = xmlForm.SelectSingleNode(XmlTags.TagCurrentDock); XmlNode xmlCurrentMode = xmlForm.SelectSingleNode(XmlTags.TagCurrentMode); XmlNode xmlIsSelected = xmlForm.SelectSingleNode(XmlTags.TagIsSelected); XmlNode xmlIsAutoHide = xmlForm.SelectSingleNode(XmlTags.TagIsAutoHide); XmlNode xmlWidth = xmlForm.SelectSingleNode(XmlTags.TagWidth); XmlNode xmlHeight = xmlForm.SelectSingleNode(XmlTags.TagHeight); Guid identifier = new Guid(xmlGuid.InnerText); zAllowedDock allowedDock = (zAllowedDock)Enum.Parse(typeof(zAllowedDock), xmlAllowedDock.InnerText); Form form = formsFactory(identifier); int width = Convert.ToInt32(xmlWidth.InnerText); int height = Convert.ToInt32(xmlHeight.InnerText); form.Width = width; form.Height = height; DockableFormInfo info = _container.Add(form, allowedDock, identifier); if (Convert.ToBoolean(xmlIsSelected.InnerText)) { selected = info; } if (Convert.ToBoolean(xmlIsAutoHide.InnerText)) { autoHide.Add(info); } DockStyle currentDock = (DockStyle)Enum.Parse(typeof(DockStyle), xmlCurrentDock.InnerText); zDockMode currentMode = (zDockMode)Enum.Parse(typeof(zDockMode), xmlCurrentMode.InnerText); if (currentDock != DockStyle.None) { if (xmlParentGuid == null) { _container.DockForm(info, currentDock, currentMode); } else { Guid parentGuid = new Guid(xmlParentGuid.InnerText); DockableFormInfo parentInfo = _container.GetFormInfo(parentGuid); _container.DockForm(info, parentInfo, currentDock, currentMode); } } return new ControlSizeInfo(form, width, height); }