/// <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);
        }
Пример #4
0
        /// <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);
        }
Пример #5
0
        /// <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;
        }
Пример #6
0
        /// <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);
        }