private void DirectoryView_Collapsed(object sender, RoutedEventArgs e) { TreeFolderInfo folder = (e.OriginalSource as TreeViewItem).DataContext as TreeFolderInfo; if (folder == null) { return; // Can be a file rather than a folder } folder.bExpanded = false; }
private void FolderSelectionCheckBox_Checked(object sender, RoutedEventArgs e) { // If a folder is checked, check all its children as well TreeFolderInfo folder = (sender as CheckBox).DataContext as TreeFolderInfo; foreach (TreeFolderInfo subFolder in folder.Folders) { subFolder.bSelected = true; } }
// // Parameters // static string HTMLStringStart = //@"<!DOCTYPE html> //<html> // <head> // <title>Folder Structure Tree</title> // </head> // <body> // "; // static string HTMLContent; // static string HTMLStringEnd = //@" // </body> //</html>"; // private async void SaveHTMLButton_Click(object sender, RoutedEventArgs e) // { // // Generate HTML fomr JSON // // Add beginning // HTMLContent += HTMLStringStart; // // Recursion // string indentation = ""; // int level = 0; // RecursiveHTML(JUnifiedFolder, indentation, level); // // Add end // HTMLContent += HTMLStringEnd; // // Select Path To Save File // VistaSaveFileDialog saveFileDialog = new VistaSaveFileDialog(); // saveFileDialog.DefaultExt = ".html"; // saveFileDialog.FileName = "Folder Structure"; // saveFileDialog.Filter = "HTML Files(*.html) | *.html"; // saveFileDialog.InitialDirectory = AppDomain.CurrentDomain.BaseDirectory; // saveFileDialog.Title = "Select where to save HTML file"; // saveFileDialog.ValidateNames = true; // bool? result = saveFileDialog.ShowDialog(); // if (result == true) // { // // Save File Content & Update Status // System.IO.File.WriteAllText(saveFileDialog.FileName, HTMLContent); // StatusLabel.Content = "Saved to file: " + saveFileDialog.FileName; // } // } // private void RecursiveHTML(JFolder folder, string currentIndentation, int indentationLevel) // { // // Do it once and use it multiple times // string folderPath = App.GetParentFolderPath(folder); // // Iterate folders // foreach (JFolder sub in folder.Folders) // { // HTMLContent = HTMLContent + currentIndentation + String.Concat(Enumerable.Repeat(" ", indentationLevel)) + // String.Format("<a href = \"file:///{0}\">{1}</a>", folderPath + "\\" + sub.FolderName, sub.FolderName) + "<br>\r\n"; // RecursiveHTML(sub, currentIndentation + "\t", indentationLevel + 1); // } // // Iterate files // foreach (JFile file in folder.Files) // { // HTMLContent = HTMLContent + currentIndentation + String.Concat(Enumerable.Repeat(" ", indentationLevel)) + // String.Format("<a href = \"file:///{0}\">{1}</a>", folderPath + "\\" + file.FileName, file.FileName) + // "<br>\r\n"; // } // } // private void RecursiveText(JFolder folder, string currentIndentation) // { // // Iterate folders // foreach (JFolder sub in folder.Folders) // { // PlainFolderStructure = PlainFolderStructure + currentIndentation + "▷" + sub.FolderName + "\n"; // RecursiveText(sub, currentIndentation + "\t"); // } // // Iterate files // foreach (JFile file in folder.Files) // { // PlainFolderStructure = PlainFolderStructure + currentIndentation + file.FileName + "\n"; // } // } #region Selection Handling private void FolderSelectionCheckBox_UnChecked(object sender, RoutedEventArgs e) { // If a folder is unchecked, uncheck all its children as well TreeFolderInfo folder = (sender as CheckBox).DataContext as TreeFolderInfo; foreach (TreeFolderInfo subFolder in folder.Folders) { subFolder.bSelected = false; } // Notice since we are using dependecy property this will automatically update UI, not just data itself }
private void DirectoryView_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e) { TreeFolderInfo folder = (sender as TreeView).SelectedItem as TreeFolderInfo; // Can be a file rather than a folder if (folder == null) { AddFolderAllowed = false; } else { AddFolderAllowed = true; } }
public EasyImportDialog() { InitializeComponent(); // Load all drives and populate the directory view RootFoldersList = new ObservableCollection <TreeFolderInfo>(); DriveInfo[] drivesInfo = DriveInfo.GetDrives(); foreach (DriveInfo drive in drivesInfo) { string fullText = drive.Name + drive.VolumeLabel; TreeFolderInfo rootFolder = new TreeFolderInfo(fullText, new DirectoryInfo(drive.Name)); rootFolder.Folders.Add(new TreeFolderInfo(true)); RootFoldersList.Add(rootFolder); } DirectoryView.ItemsSource = RootFoldersList; }
private void DirectoryView_Expanded(object sender, RoutedEventArgs e) { TreeFolderInfo folder = (e.OriginalSource as TreeViewItem).DataContext as TreeFolderInfo; if (folder == null) { return; // Can be a file rather than a folder } // If the folder isn't already loaded then load it if (folder.IsTemp) { // Clear existing content folder.Folders.Clear(); // Add new content MULTITUDE.Class.Facility.TreeFolderInfo.FolderGenerator(folder); } folder.bExpanded = true; }