diff --git a/CSharp/Libraries/UniversalEditor.Essential/ObjectModels/Project/IProjectItemContainer.cs b/CSharp/Libraries/UniversalEditor.Essential/ObjectModels/Project/IProjectItemContainer.cs new file mode 100644 index 00000000..81cc5e49 --- /dev/null +++ b/CSharp/Libraries/UniversalEditor.Essential/ObjectModels/Project/IProjectItemContainer.cs @@ -0,0 +1,28 @@ +// +// IProjectItemContainer.cs +// +// Author: +// Mike Becker +// +// Copyright (c) 2019 Mike Becker +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +using System; +namespace UniversalEditor.ObjectModels.Project +{ + public interface IProjectItemContainer : IProjectFileContainer + { + ProjectFolder.ProjectFolderCollection Folders { get; } + } +} diff --git a/CSharp/Libraries/UniversalEditor.Essential/ObjectModels/Project/ProjectFile.cs b/CSharp/Libraries/UniversalEditor.Essential/ObjectModels/Project/ProjectFile.cs index 5786ac95..5f51f0fa 100644 --- a/CSharp/Libraries/UniversalEditor.Essential/ObjectModels/Project/ProjectFile.cs +++ b/CSharp/Libraries/UniversalEditor.Essential/ObjectModels/Project/ProjectFile.cs @@ -12,7 +12,7 @@ namespace UniversalEditor.ObjectModels.Project : System.Collections.ObjectModel.Collection { private IProjectFileContainer _parent = null; - public ProjectFileCollection(ProjectFolder parent = null) + public ProjectFileCollection(IProjectFileContainer parent = null) { _parent = parent; } diff --git a/CSharp/Libraries/UniversalEditor.Essential/ObjectModels/Project/ProjectFileSystem.cs b/CSharp/Libraries/UniversalEditor.Essential/ObjectModels/Project/ProjectFileSystem.cs index 2dfca34d..e0af3e01 100644 --- a/CSharp/Libraries/UniversalEditor.Essential/ObjectModels/Project/ProjectFileSystem.cs +++ b/CSharp/Libraries/UniversalEditor.Essential/ObjectModels/Project/ProjectFileSystem.cs @@ -5,32 +5,36 @@ using System.Text; namespace UniversalEditor.ObjectModels.Project { - public class ProjectFileSystem + public class ProjectFileSystem : IProjectItemContainer { - private ProjectFolder.ProjectFolderCollection mvarFolders = new ProjectFolder.ProjectFolderCollection(); /// /// The collection of folders in this project. /// - public ProjectFolder.ProjectFolderCollection Folders { get { return mvarFolders; } } + public ProjectFolder.ProjectFolderCollection Folders { get; private set; } = null; - private ProjectFile.ProjectFileCollection mvarFiles = new ProjectFile.ProjectFileCollection(); /// /// The collection of files in this project. /// - public ProjectFile.ProjectFileCollection Files { get { return mvarFiles; } } + public ProjectFile.ProjectFileCollection Files { get; private set; } = null; + + public ProjectFileSystem() + { + Files = new ProjectFile.ProjectFileCollection(this); + Folders = new ProjectFolder.ProjectFolderCollection(this); + } public void Clear() { - mvarFolders.Clear(); - mvarFiles.Clear(); + Folders.Clear(); + Files.Clear(); } public void CopyTo(ProjectFileSystem clone) { - foreach (ProjectFile file in mvarFiles) + foreach (ProjectFile file in Files) { clone.Files.Add(file.Clone() as ProjectFile); } - foreach (ProjectFolder folder in mvarFolders) + foreach (ProjectFolder folder in Folders) { clone.Folders.Add(folder.Clone() as ProjectFolder); } diff --git a/CSharp/Libraries/UniversalEditor.Essential/ObjectModels/Project/ProjectFolder.cs b/CSharp/Libraries/UniversalEditor.Essential/ObjectModels/Project/ProjectFolder.cs index 300280a0..71d5b038 100644 --- a/CSharp/Libraries/UniversalEditor.Essential/ObjectModels/Project/ProjectFolder.cs +++ b/CSharp/Libraries/UniversalEditor.Essential/ObjectModels/Project/ProjectFolder.cs @@ -5,13 +5,13 @@ using System.Text; namespace UniversalEditor.ObjectModels.Project { - public class ProjectFolder : IProjectFileContainer, ICloneable + public class ProjectFolder : IProjectItemContainer, ICloneable { public class ProjectFolderCollection : System.Collections.ObjectModel.Collection { - private ProjectFolder _parent = null; - public ProjectFolderCollection(ProjectFolder parent = null) + private IProjectItemContainer _parent = null; + public ProjectFolderCollection(IProjectItemContainer parent = null) { _parent = parent; } @@ -77,8 +77,8 @@ namespace UniversalEditor.ObjectModels.Project private string mvarName = String.Empty; public string Name { get { return mvarName; } set { mvarName = value; } } - private ProjectFolder mvarParent = null; - public ProjectFolder Parent { get { return mvarParent; } private set { mvarParent = value; } } + private IProjectItemContainer mvarParent = null; + public IProjectItemContainer Parent { get { return mvarParent; } private set { mvarParent = value; } } private ProjectFolder.ProjectFolderCollection mvarFolders = null; public ProjectFolder.ProjectFolderCollection Folders { get { return mvarFolders; } } diff --git a/CSharp/Libraries/UniversalEditor.Essential/UniversalEditor.Essential.csproj b/CSharp/Libraries/UniversalEditor.Essential/UniversalEditor.Essential.csproj index 9df6d71e..dd2d7ef5 100644 --- a/CSharp/Libraries/UniversalEditor.Essential/UniversalEditor.Essential.csproj +++ b/CSharp/Libraries/UniversalEditor.Essential/UniversalEditor.Essential.csproj @@ -193,6 +193,7 @@ +