Updated the code in the FileViewer to populate the main TreeVeiw with the Snapshot class object.
This commit is contained in:
Binary file not shown.
+39
-50
@@ -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];
|
||||
|
||||
Reference in New Issue
Block a user