Esempio n. 1
0
        public override void visitChildren(FileVisitor fileVisitor, DirectoryVisitor directoryVisitor, VisitFailed visitFailed)
        {
            try
            {
                IReadOnlyList <IStorageItem> storageItems = getStorageFolder().GetItemsAsync().DoSynchronously();

                foreach (IStorageItem storageItem in storageItems)
                {
                    StorageItemPathAttributes pathAttributes = new StorageItemPathAttributes(storageItem);

                    if (storageItem is IStorageFolder)
                    {
                        if (directoryVisitor != null)
                        {
                            directoryVisitor(new StorageFolderDirectory(this, (StorageFolder)storageItem));
                        }
                    }
                    else if (storageItem is IStorageFile)
                    {
                        if (fileVisitor != null)
                        {
                            fileVisitor(new StorageFileFile(this, (StorageFile)storageItem));
                        }
                    }
                    else
                    {
                        throw new Exception("Unknown type of StorageItem: " + storageItem);
                    }
                }
            }
            catch (System.IO.IOException e)
            {
                throw DotNetIOUtils.jSimpleExceptionFromDotNetIOException(e);
            }
        }
Esempio n. 2
0
        static T AutoCreateLoad <T>(string assetName) where T : ScriptableObject
        {
            string[] guids = AssetDatabase.FindAssets($"t:{typeof(T).Name}");

            if (guids.Length > 0)
            {
                string path   = AssetDatabase.GUIDToAssetPath(guids[0]);
                var    result = AssetDatabase.LoadAssetAtPath <T>(path);

                return(result);
            }
            else
            {
                DirectoryVisitor directoryVisitor = new DirectoryVisitor("Assets/")
                                                    .CreateFolderIfNotExist(ResourcePath)
                                                    .Enter(ResourcePath);

                var assetIns = ScriptableObject.CreateInstance <T>();

                string path = $"{directoryVisitor}{assetName}.asset";
                Debug.Log($"Auto create asset : {path}");

                AssetDatabase.CreateAsset(assetIns, path);
                var result = AssetDatabase.LoadAssetAtPath <T>(path);

                return(result);
            }
        }
Esempio n. 3
0
        //
        // Initialization

        public DirectoryTraverser(
            DirectoryVisitor onDirectory, FileVisitor onFile,
            string[] excludeFiles, string[] excludeDirectories)
        {
            this.excludeDirectories = excludeDirectories;
            this.excludeFiles       = excludeFiles;

            this.onDirectory = onDirectory;
            this.onFile      = onFile;
        }
        //
        // Initialization
        public DirectoryTraverser(
            DirectoryVisitor onDirectory, FileVisitor onFile,
            string[] excludeFiles, string[] excludeDirectories)
        {
            this.excludeDirectories = excludeDirectories;
            this.excludeFiles = excludeFiles;

            this.onDirectory = onDirectory;
            this.onFile = onFile;
        }
        internal static void traverseNormalClassesAndInstantiate(DirectoryInfo dir, DirectoryVisitor visitor)
        {
            if (!dir.Exists)
            {
                throw new ArgumentException("not a directory: " + dir.Name);
            }

            visitor.enterDirectory(dir);
            // ignore classes in directories "auto", "datatypes" and
            // "util"
            // ignoreList : abstract classes, classes which are no jdf
            // elements ...

            //FileFilter ff = new FileFilter()
            //{
            //   public bool accept(File pathname)
            //   {
            //      bool acceptFile = false;
            //      string name = pathname.getName();
            //      if (pathname.isDirectory())
            //      {
            //         acceptFile = !name.Equals("auto") && !name.Equals("datatypes") && !name.Equals("util") && !name.Equals("validate");
            //      }
            //      else
            //      {
            //         VString ignoreList = new VString("JDFConstants.java JDFDoc.java JDFDocumentBuilder.java " + "JDFException.java JDFParser.java JDFVersions.java JDFAbstractState.java " + "JDFEvaluation.java JDFNodeTerm.java JDFTerm.java JDFEnumerationSpan.java " + "JDFSpan.java JDFSpanBase.java " + "JDFDurationSpan.java JDFIntegerSpan.java JDFNameSpan.java JDFNumberSpan.java " + "JDFOptionSpan.java JDFShapeSpan.java JDFSpanNamedColor.java " + "JDFStringSpan.java JDFTimeSpan.java JDFXYPairSpan.java " + "JDFResourceLink.java " + "JDFPool.java", null);
            //         acceptFile = !ignoreList.Contains(name) && name.StartsWith("JDF") && name.ToLower().EndsWith(".cs");
            //      }
            //      return acceptFile;
            //    }
            //);


            DirectoryInfo[] dirs = dir.GetDirectories();
            for (int j = 0; j < dirs.Length; ++j)
            {
                DirectoryInfo jDir = dirs[j];
                if (OkToVisitDir(jDir.Name))
                {
                    traverseNormalClassesAndInstantiate(jDir, visitor);
                }
            }

            FileInfo[] files = dir.GetFiles("JDF*.cs");
            for (int i = 0; i < files.Length; ++i)
            {
                FileInfo file = files[i];
                if (OkToVisitFile(file.Name))
                {
                    visitor.visitFile(file);
                }
            }

            visitor.leaveDirectory(dir);
        }
Esempio n. 6
0
		} //

		public FileSortVM( IServiceProvider services, CategoryManager manager ) : base( services ) {

			manager.PropertyChanged += Manager_PropertyChanged;
			this.CategorySet = manager.Current;

			this.FilePreview = new FilePreviewVM();

			this.visitor = new DirectoryVisitor( string.Empty );
			this.visitor.PropertyChanged += this.DirectoryPropertyChanged;
			this.visitor.SetDirectory( Properties.SortingSettings.Default.LastDirectory );

			// Used to listen for changes to the underlying view to reset the bindings.
			// Necessary because the view isn't linked when the constructor is called.
			// TODO: this isn't very good.
			this.PropertyChanged += this.FileSortVM_PropertyChanged;


		}
Esempio n. 7
0
        static string GetRootPath()
        {
            const string AsmdefQuery = "t:ASMDEF OnionDataEditor.Editor";

            string asmdefGUID = AssetDatabase.FindAssets(AsmdefQuery)[0];
            string asmdefPath = AssetDatabase.GUIDToAssetPath(asmdefGUID);

            DirectoryVisitor directoryVisitor = new DirectoryVisitor(asmdefPath);

            directoryVisitor.Back();

            string rootPath = directoryVisitor.GetPathWithoutSplitChar();

            if (rootPath.StartsWith("Assets/"))
            {
                return(rootPath);
            }

            return(null);
        }
Esempio n. 8
0
        public override void visitChildren(FileVisitor fileVisitor, DirectoryVisitor directoryVisitor,
                                           VisitFailed visitFailed)
        {
            var directoryInfo = new DirectoryInfo(directoryPath);

            try
            {
                foreach (var fileSystemInfo in directoryInfo.EnumerateFileSystemInfos())
                {
                    if ((fileSystemInfo.Attributes & FileAttributes.Directory) == FileAttributes.Directory)
                    {
                        directoryVisitor(new FileSystemDirectory(fileSystemInfo.FullName));
                    }
                    else
                    {
                        fileVisitor(new FileSystemFile(this, fileSystemInfo.FullName));
                    }
                }
            }
            catch (System.IO.IOException e)
            {
                throw DotNetIOUtils.jSimpleExceptionFromDotNetIOException(e);
            }
        }
Esempio n. 9
0
 public DirectoryTraverser(
     DirectoryVisitor onDirectory, FileVisitor onFile) :
     this(onDirectory, onFile, null, null)
 {
 }
        public override void visitChildren(DirectoryVisitor visitor)
        {
            try
            {
                IReadOnlyList<IStorageItem> storageItems = StorageFolder.GetItemsAsync().DoSynchronously();

                foreach (IStorageItem storageItem in storageItems)
                {
                    StorageItemPathAttributes pathAttributes = new StorageItemPathAttributes(storageItem);

                    if (storageItem is IStorageFolder)
                        visitor.visit(new StorageFolderDirectory(this, (StorageFolder)storageItem));
                    else if (storageItem is IStorageFile)
                        visitor.visit(new StorageFileFile(this, (StorageFile)storageItem));
                    else throw new Exception("Unknown type of StorageItem: " + storageItem);
                }
            }
            catch (System.IO.IOException e)
            {
                throw DotNetIOUtils.jSimpleExceptionFromDotNetIOException(e);
            }
        }
Esempio n. 11
0
        public override void visitChildren(FileVisitor fileVisitor, DirectoryVisitor directoryVisitor,
            VisitFailed visitFailed)
        {
            var directoryInfo = new DirectoryInfo(directoryPath);

            try
            {
                foreach (var fileSystemInfo in directoryInfo.EnumerateFileSystemInfos())
                {
                    if ((fileSystemInfo.Attributes & FileAttributes.Directory) == FileAttributes.Directory)
                        directoryVisitor(new FileSystemDirectory(fileSystemInfo.FullName));
                    else fileVisitor(new FileSystemFile(this, fileSystemInfo.FullName));
                }
            }
            catch (System.IO.IOException e)
            {
                throw DotNetIOUtils.jSimpleExceptionFromDotNetIOException(e);
            }
        }
Esempio n. 12
0
 public DirectoryTraverser(
     DirectoryVisitor onDirectory, FileVisitor onFile)
     : this(onDirectory,onFile,null,null)
 {
 }
Esempio n. 13
0
        internal static void traverseAutoClassesAndCheckForCorrespondingNormalClass(DirectoryInfo dir, DirectoryVisitor visitor)
        {
            if (!dir.Exists)
            {
                throw new ArgumentException("not a directory: " + dir.Name);
            }

            //new FileFilter()
            //{
            //   public bool accept(File pathname)
            //   {
            //      bool acceptFile = false;
            //      string name = pathname.getName();
            //      if (pathname.isDirectory())
            //      {
            //         acceptFile = false;
            //      }
            //      else
            //      {
            //         acceptFile = name.StartsWith("JDFAuto") && name.ToLower().EndsWith(".cs");
            //      }
            //      return acceptFile;
            //   }
            //  }
            //);


            visitor.enterDirectory(dir);
            DirectoryInfo[] dirs = dir.GetDirectories();
            for (int j = 0; j < dirs.Length; ++j)
            {
                traverseAutoClassesAndCheckForCorrespondingNormalClass(dirs[j], visitor);
            }

            FileInfo[] files = dir.GetFiles("JDFAuto*.cs");
            for (int i = 0; i < files.Length; ++i)
            {
                try
                {
                    visitor.visitFile(files[i]);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            }

            visitor.leaveDirectory(dir);
        }