Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }