Updated the code in the FileViewer to populate the main TreeVeiw with the Snapshot class object.

This commit is contained in:
Admin
2020-11-13 15:26:48 -06:00
parent cc3c87cb5d
commit 19264b388f
2 changed files with 39 additions and 50 deletions
Binary file not shown.
+39 -50
View File
@@ -16,7 +16,8 @@ namespace DataOrganizer
{
private Dictionary<string, DB.Profile> Profiles { get; } = new Dictionary<string, DB.Profile>();
private Dictionary<string, DB.FolderGroup> FolderGroups { get; } = new Dictionary<string, DB.FolderGroup>();
//private Dictionary<string, Folder> Folders { get; } = new Dictionary<string, Folder>();
private string CurrentNamingPattern { get; set; } = string.Empty;
private ContextMenu PrimaryTreeContextMenu { get; set; } = new ContextMenu(); //Copy to default new content location, set new naming rules etc..
public FileViewer()
{
@@ -39,64 +40,52 @@ namespace DataOrganizer
private void SelectedFolderComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
var folder = FolderGroups[RootFolderComboBox.Text];
var rootDepth = folder.Path.Split(new char[] { Path.DirectorySeparatorChar }).Length;
var profile = Profiles[ProfileComboBox.Text];
var includedFolders = new Dictionary<string, TreeNode>();
var db = new DB();
var folderGroup = FolderGroups[RootFolderComboBox.Text];
CurrentNamingPattern = db.GetNamingPatternById(folderGroup.PatternId);
var profile = Profiles[ProfileComboBox.Text];
PrimaryFilesTreeView.Nodes.Clear();
var files = db.GetFilesForProfileByFolderGroup(profile.Id, folder.Id);
var d = new Snapshot(files, profile, folder);
var files = db.GetFilesForProfileByFolderGroup(profile.Id, folderGroup.Id);
var snapshot = new Snapshot(files, profile, folderGroup);
var currentShowNode = new TreeNode();
foreach (var file in files)
foreach(var folder in snapshot.Root.Folders)
{
var folders = file.FullPath.Split(new char[] { Path.DirectorySeparatorChar });
var currentPath = folder.Path;
if(folders.Length == rootDepth + 1)
{
PrimaryFilesTreeView.Nodes.Add(new TreeNode(folders[rootDepth]) { Name = Path.Combine(currentPath, folders[rootDepth]), ToolTipText = Path.Combine(currentPath, folders[rootDepth]) });
continue;
}
var previousPath = string.Empty;
if (folders.Length >= rootDepth + 1)
{
if (currentShowNode.Text != folders[rootDepth])
{
currentShowNode = new TreeNode(folders[rootDepth]) { Name = Path.Combine(currentPath, folders[rootDepth]), ToolTipText = Path.Combine(currentPath, folders[rootDepth]) };
includedFolders.Add(Path.Combine(currentPath, folders[rootDepth]), currentShowNode);
PrimaryFilesTreeView.Nodes.Add(currentShowNode);
}
}
for(var i = rootDepth; i < folders.Length - 1; i++)
{
previousPath = currentPath;
currentPath = Path.Combine(currentPath, folders[i]);
if(!includedFolders.ContainsKey(currentPath))
{
var newNode = new TreeNode(folders[i]) { Name = currentPath, ToolTipText = currentPath };
if (includedFolders.ContainsKey(previousPath))
{
includedFolders[previousPath].Nodes.Add(newNode);
includedFolders.Add(currentPath, newNode);
}
}
}
var node = includedFolders[currentPath];
node.Nodes.Add(new TreeNode(folders[folders.Length - 1]) { Name = Path.Combine(currentPath, folders[folders.Length - 1]), ToolTipText = Path.Combine(currentPath, folders[folders.Length - 1]) });
PrimaryFilesTreeView.Nodes.Add(GetNodeFromSnapshot(folder));
}
}
private TreeNode GetNodeFromSnapshot(KeyValuePair<string, Folder> folder)
{
var node = new TreeNode(folder.Value.Name) { Name = folder.Key, ToolTipText = folder.Key };
var regex = new Regex(CurrentNamingPattern);
foreach(var f in folder.Value.Folders)
{
var folderNode = GetNodeFromSnapshot(f);
node.Nodes.Add(folderNode);
if (folderNode.ForeColor == Color.Orange)
{
node.ForeColor = folderNode.ForeColor;
node.ToolTipText = "Naming violations found!";
}
}
foreach(var file in folder.Value.Files)
{
var fileNode = new TreeNode(file.Value.Name) { Name = file.Key, ToolTipText = file.Key };
if (!regex.IsMatch(file.Value.Name)) fileNode.ForeColor = Color.Orange;
node.Nodes.Add(fileNode);
node.ForeColor = fileNode.ForeColor;
}
return node;
}
private void ProfileComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
var profile = Profiles[ProfileComboBox.Text];