NBTExplorer/Model/DirectoryDataNode.cs

66 lines
1.6 KiB
C#
Raw Normal View History

2012-08-31 05:29:32 +00:00
using System.IO;
namespace NBTExplorer.Model
{
public class DirectoryDataNode : DataNode
{
private string _path;
public DirectoryDataNode (string path)
{
_path = path;
}
protected override NodeCapabilities Capabilities
{
get
{
return NodeCapabilities.Search;
}
}
public override string NodeDisplay
{
get { return Path.GetFileName(_path); }
}
public override bool HasUnexpandedChildren
{
get { return !IsExpanded; }
}
protected override void ExpandCore ()
{
foreach (string dirpath in Directory.GetDirectories(_path)) {
Nodes.Add(new DirectoryDataNode(dirpath));
}
foreach (string filepath in Directory.GetFiles(_path)) {
string ext = Path.GetExtension(filepath);
DataNode node = null;
switch (ext) {
case ".mcr":
case ".mca":
node = RegionFileDataNode.TryCreateFrom(filepath);
break;
case ".dat":
case ".nbt":
case ".schematic":
node = NbtFileDataNode.TryCreateFrom(filepath);
break;
}
if (node != null)
Nodes.Add(node);
}
}
protected override void ReleaseCore ()
{
Nodes.Clear();
}
}
}