From 1007b6f6f02924e872694e390a70f54848d2cfcb Mon Sep 17 00:00:00 2001 From: alcexhim Date: Fri, 5 Feb 2016 14:25:39 -0500 Subject: [PATCH] Add Parent property to get parent folder of a File, if available --- .../ObjectModels/FileSystem/File.cs | 26 +++++++++++++++++++ .../ObjectModels/FileSystem/Folder.cs | 3 ++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/CSharp/Libraries/UniversalEditor.Essential/ObjectModels/FileSystem/File.cs b/CSharp/Libraries/UniversalEditor.Essential/ObjectModels/FileSystem/File.cs index 20617a28..105b5efc 100644 --- a/CSharp/Libraries/UniversalEditor.Essential/ObjectModels/FileSystem/File.cs +++ b/CSharp/Libraries/UniversalEditor.Essential/ObjectModels/FileSystem/File.cs @@ -76,6 +76,28 @@ namespace UniversalEditor.ObjectModels.FileSystem { return (this[Name] != null); } + + private Folder mvarParent = null; + public FileCollection(Folder parent = null) + { + mvarParent = parent; + } + + protected override void InsertItem(int index, File item) + { + base.InsertItem(index, item); + item.Parent = mvarParent; + } + protected override void RemoveItem(int index) + { + this[index].Parent = null; + base.RemoveItem(index); + } + protected override void SetItem(int index, File item) + { + item.Parent = mvarParent; + base.SetItem(index, item); + } } private FileAttributes mvarAttributes = FileAttributes.None; @@ -142,6 +164,7 @@ namespace UniversalEditor.ObjectModels.FileSystem { clone.Properties.Add(kvp.Key, kvp.Value); } + clone.Parent = mvarParent; return clone; } @@ -244,6 +267,9 @@ namespace UniversalEditor.ObjectModels.FileSystem /// public FileSource Source { get { return mvarSource; } set { mvarSource = value; } } + private Folder mvarParent = null; + public Folder Parent { get { return mvarParent; } internal set { mvarParent = value; } } + // The amount of working set to allocate to each block. public const int BLOCK_FRACTION = 4; diff --git a/CSharp/Libraries/UniversalEditor.Essential/ObjectModels/FileSystem/Folder.cs b/CSharp/Libraries/UniversalEditor.Essential/ObjectModels/FileSystem/Folder.cs index a55d7579..6d9eff77 100644 --- a/CSharp/Libraries/UniversalEditor.Essential/ObjectModels/FileSystem/Folder.cs +++ b/CSharp/Libraries/UniversalEditor.Essential/ObjectModels/FileSystem/Folder.cs @@ -77,6 +77,7 @@ namespace UniversalEditor.ObjectModels.FileSystem public Folder() { mvarFolders = new FolderCollection(this); + mvarFiles = new File.FileCollection(this); } private FolderCollection _parentCollection = null; @@ -90,7 +91,7 @@ namespace UniversalEditor.ObjectModels.FileSystem private FolderCollection mvarFolders = null; public FolderCollection Folders { get { return mvarFolders; } } - private File.FileCollection mvarFiles = new File.FileCollection(); + private File.FileCollection mvarFiles = null; public File.FileCollection Files { get { return mvarFiles; } } ///