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.Profile> Profiles { get; } = new Dictionary<string, DB.Profile>();
|
||||||
private Dictionary<string, DB.FolderGroup> FolderGroups { get; } = new Dictionary<string, DB.FolderGroup>();
|
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()
|
public FileViewer()
|
||||||
{
|
{
|
||||||
@@ -39,64 +40,52 @@ namespace DataOrganizer
|
|||||||
|
|
||||||
private void SelectedFolderComboBox_SelectedIndexChanged(object sender, EventArgs e)
|
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 db = new DB();
|
||||||
|
|
||||||
|
var folderGroup = FolderGroups[RootFolderComboBox.Text];
|
||||||
|
CurrentNamingPattern = db.GetNamingPatternById(folderGroup.PatternId);
|
||||||
|
var profile = Profiles[ProfileComboBox.Text];
|
||||||
|
|
||||||
PrimaryFilesTreeView.Nodes.Clear();
|
PrimaryFilesTreeView.Nodes.Clear();
|
||||||
|
|
||||||
var files = db.GetFilesForProfileByFolderGroup(profile.Id, folder.Id);
|
var files = db.GetFilesForProfileByFolderGroup(profile.Id, folderGroup.Id);
|
||||||
var d = new Snapshot(files, profile, folder);
|
var snapshot = new Snapshot(files, profile, folderGroup);
|
||||||
|
|
||||||
var currentShowNode = new TreeNode();
|
foreach(var folder in snapshot.Root.Folders)
|
||||||
|
|
||||||
foreach (var file in files)
|
|
||||||
{
|
{
|
||||||
var folders = file.FullPath.Split(new char[] { Path.DirectorySeparatorChar });
|
PrimaryFilesTreeView.Nodes.Add(GetNodeFromSnapshot(folder));
|
||||||
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]) });
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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)
|
private void ProfileComboBox_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
var profile = Profiles[ProfileComboBox.Text];
|
var profile = Profiles[ProfileComboBox.Text];
|
||||||
|
|||||||
Reference in New Issue
Block a user