public override void Initialize() { Console.WriteLine(Environment.CurrentDirectory); base.Initialize(); tree = new Gwen.Control.TreeControl(panel); tree.SetSize(panel.Width, panel.Height); tree.ShouldDrawBackground = false; var type = typeof(Pipeline); var subclasses = type.Assembly.GetTypes().Where(t => t.IsSubclassOf(type)); foreach (var subclass in subclasses) { subclass.GetCustomAttributes(false); } MeshPipeline.SetMeshContext <ushort, BasicVertexFormat> (); RecursiveBuildTree(root, tree); foreach (FileInfo file in FilterFiles(root, SupportedFileFormatsAttribute.importers.Keys)) { if (!file.Name.StartsWith(".") && SupportedFileFormatsAttribute.importers.ContainsKey(file.Extension)) { tree.AddNode(() => SupportedFileFormatsAttribute.importers [file.Extension].Import(file.FullName)); } } tree.Show(); tree.Selected += OnSelected; }
void RecursiveBuildTree(DirectoryInfo dirRoot, Gwen.Control.TreeNode treeIter) { MeshPipeline.SetMeshContext <ushort, BasicVertexFormat> (); foreach (DirectoryInfo di in dirRoot.EnumerateDirectories()) { if (!di.Name.StartsWith(".")) { var iter = treeIter.AddNode(di.Name); foreach (FileInfo file in FilterFiles(di, SharpAsset.Pipeline.SupportedFileFormatsAttribute.importers.Keys)) { if (SupportedFileFormatsAttribute.importers.ContainsKey(file.Extension) && !file.Name.StartsWith(".")) { iter.AddNode(() => SupportedFileFormatsAttribute.importers[file.Extension].Import(file.FullName)); } } RecursiveBuildTree(di, iter); } } }