예제 #1
0
        internal void FromXml(XmlDocumentFolder objectToDeserialize)
        {
            try
            {
                _opening      = true;
                this.FileName = Win32Utils.GetAbsolutePath(objectToDeserialize.RelativePath,
                                                           ParentDocument.FileName);

                base.FromXml(objectToDeserialize);
            }
            finally
            {
                _opening = false;
            }
        }
예제 #2
0
        internal void FromXml(XmlLuaGroupDocumentBase objectToDeserialize)
        {
            // Deserialize sub-documents
            if (objectToDeserialize.Documents != null)
            {
                foreach (DocumentRef refDoc in objectToDeserialize.Documents)
                {
                    refDoc.FileName = Win32Utils.GetAbsolutePath(refDoc.FileName, _fileName);
                    ILuaEditDocument doc = DocumentsManager.Instance.BaseOpenDocument(refDoc);

                    if (doc != null)
                    {
                        this.AddDocument(doc);
                    }
                }
            }

            // Deserialize sub-folders
            if (objectToDeserialize.DocumentFolders != null)
            {
                foreach (XmlDocumentFolder xmlFolder in objectToDeserialize.DocumentFolders)
                {
                    DocumentFolder folderDoc = new DocumentFolder();
                    folderDoc.ParentDocument = this;
                    folderDoc.FromXml(xmlFolder);

                    if (folderDoc != null)
                    {
                        this.AddDocument(folderDoc as ILuaEditDocumentFolder);
                    }
                }
            }

            // Deserialize sub-group documents
            if (objectToDeserialize.DocumentGroups != null)
            {
                foreach (DocumentRef refDoc in objectToDeserialize.DocumentGroups)
                {
                    refDoc.FileName = Win32Utils.GetAbsolutePath(refDoc.FileName, _fileName);
                    ILuaEditDocumentGroup docGrp = DocumentsManager.Instance.BaseOpenDocument(refDoc) as ILuaEditDocumentGroup;

                    if (docGrp != null)
                    {
                        this.AddDocument(docGrp);
                    }
                }
            }
        }