public StandardElementSave AddStandardElementSaveInstance(GumProjectSave gumProjectSave, string type) { StandardElementSave elementSave = new StandardElementSave(); elementSave.Initialize(mDefaults[type]); elementSave.Name = type; gumProjectSave.StandardElementReferences.Add(new ElementReference { Name = type, ElementType = ElementType.Standard }); gumProjectSave.StandardElements.Add(elementSave); return(elementSave); }
private GeneralResponse GetReferencesInProjectOrDisk(string fileName, TopLevelOrRecursive topLevelOrRecursive, List <string> listToFill, ProjectOrDisk projectOrDisk) { GeneralResponse generalResponse = GeneralResponse.SuccessfulResponse; if (CanTrackDependenciesOn(fileName)) { string extension = FileManager.GetExtension(fileName); string oldRelative = FileManager.RelativeDirectory; string gumxFile = null; FileManager.RelativeDirectory = GetGumxDirectory(fileName); LoadGumxIfNecessaryFromDirectory(FileManager.RelativeDirectory); string absoluteFileName = fileName; if (FileManager.IsRelative(absoluteFileName)) { absoluteFileName = FileManager.RelativeDirectory + absoluteFileName; } string errors = null; if (System.IO.File.Exists(absoluteFileName)) { switch (extension) { case "gumx": { try { LoadGumxIfNecessaryFromDirectory(FileManager.RelativeDirectory, force: true); GetFilesReferencedBy(Gum.Managers.ObjectFinder.Self.GumProjectSave, topLevelOrRecursive, listToFill, projectOrDisk); } catch (Exception e) { errors = "Error tracking Gum references for " + absoluteFileName + "\n" + e.ToString(); } } break; case "gucx": { ComponentSave gumComponentSave = null; try { gumComponentSave = FileManager.XmlDeserialize <ComponentSave>(absoluteFileName); gumComponentSave.FileName = absoluteFileName; // See an explanation for this in LoadGumxIfNecessaryFromDirectory gumComponentSave.Initialize(gumComponentSave.DefaultState); GetFilesReferencedBy(gumComponentSave, topLevelOrRecursive, listToFill, projectOrDisk); } catch (Exception e) { errors = "Error tracking Gum references for " + absoluteFileName + "\n" + e.ToString(); } } break; case "gusx": { ScreenSave gumScreenSave = null; try { gumScreenSave = FileManager.XmlDeserialize <ScreenSave>(absoluteFileName); gumScreenSave.FileName = absoluteFileName; // See an explanation for this in LoadGumxIfNecessaryFromDirectory gumScreenSave.Initialize(gumScreenSave.DefaultState); GetFilesReferencedBy(gumScreenSave, topLevelOrRecursive, listToFill, projectOrDisk); } catch (Exception e) { errors = "Error tracking Gum references for " + absoluteFileName + "\n" + e.ToString(); } } break; case "gutx": { StandardElementSave standardElementSave = null; try { standardElementSave = FileManager.XmlDeserialize <StandardElementSave>(absoluteFileName); standardElementSave.FileName = absoluteFileName; // See an explanation for this in LoadGumxIfNecessaryFromDirectory standardElementSave.Initialize(standardElementSave.DefaultState); GetFilesReferencedBy(standardElementSave, topLevelOrRecursive, listToFill, projectOrDisk); } catch (Exception e) { errors = "Error tracking Gum references for " + absoluteFileName + "\n" + e.ToString(); } } break; } } if (errors != null) { generalResponse = new GeneralResponse { Succeeded = false, Message = errors }; } FileManager.RelativeDirectory = oldRelative; } return(generalResponse); }