// will be called whenever a user check a check button of a folder in tvwFolders protected void tvwFolders_AfterCheck(object sender, TreeViewEventArgs e) { SetStatusModified(); EventHandlerManager.PauseAllEventHandlers(); { tvwFoldersManager.UpdateCheckStates(e.Node); CheckState checkState = lvwFilesManager.UpdateCheckStates(); chkSelectAll.CheckState = checkState; } EventHandlerManager.ResumeAllEventHandlers(); }
protected void chkSelectAll_CheckedChanged(object sender, EventArgs e) { SetStatusModified(); EventHandlerManager.PauseAllEventHandlers(); { if (chkSelectAll.CheckState != CheckState.Indeterminate) { lvwFilesManager.SetAllCheckStates(chkSelectAll.Checked); } tvwFoldersManager.UpdateParentCheckStates(tvwFolders.SelectedNode, chkSelectAll.Checked); } EventHandlerManager.ResumeAllEventHandlers(); }
protected void lvwFiles_ItemChecked(object sender, ItemCheckedEventArgs e) { SetStatusModified(); EventHandlerManager.PauseAllEventHandlers(); { lvwFilesManager.UpdateItemCheckState(e.Item); CheckState checkState = lvwFilesManager.IsAllItemsChecked(); chkSelectAll.CheckState = checkState; tvwFoldersManager.UpdateParentCheckStates(tvwFolders.SelectedNode, e.Item.Checked); } EventHandlerManager.ResumeAllEventHandlers(); }
protected void tvwFolders_AfterSelect(object sender, TreeViewEventArgs e) { EventHandlerManager.PauseAllEventHandlers(); { // show file list in the selected folder string path = tvwFoldersManager.GetPath(e.Node); txtPath.Text = path; // show the path of selected folder bool hasFiles = lvwFilesManager.SetItems(e.Node); // show files on lvwFiles splitContainer1.Panel2.Enabled = hasFiles; // lvwFiles and chkSelectAll are enabled only one of more files are existed in the selected folder CheckState checkState = lvwFilesManager.IsAllItemsChecked(); chkSelectAll.CheckState = checkState; } EventHandlerManager.ResumeAllEventHandlers(); }
/// <summary> /// Initialize this program /// </summary> /// <param name="e"></param> protected override void OnShown(EventArgs e) { base.OnShown(e); EventHandlerManager.AddEventHandler(tvwFolders, "AfterCheck", this, "tvwFolders_AfterCheck"); EventHandlerManager.AddEventHandler(tvwFolders, "AfterSelect", this, "tvwFolders_AfterSelect"); EventHandlerManager.AddEventHandler(lvwFiles, "ItemChecked", this, "lvwFiles_ItemChecked"); EventHandlerManager.AddEventHandler(chkSelectAll, "CheckedChanged", this, "chkSelectAll_CheckedChanged"); tvwFoldersManager = new FolderTreeViewManager(tvwFolders); lvwFilesManager = new FileListViewManager(lvwFiles, colName, colType, colSize); // initialize the title message of the form _defaultMainFormText = Text; SetMessageToMainFormText(""); // initialize the status strip bar lblStatusStrip.Text = ""; // restrict file types that this app can open dlgOpenFile.Filter = "SpaceSniffer export file|*." + _txtExtention + "|FileListExporter File|*." + _fileListExtention; // show file open dialog DialogResult result = dlgOpenFile.ShowDialog(); // if a file is selected: if (result == DialogResult.OK) { fileListExporterFile.SetFilePath(dlgOpenFile.FileName); // if a txt file(SpaceSniffer export filer) is selected: if (fileListExporterFile.FileExtention == _txtExtention) { SetStatusLoading(dlgOpenFile.FileName); // try to load the selected txt file _fileHierarchies = spaceSnifferFile.LoadTxtFile(dlgOpenFile.FileName); // if the file hierarchies are successfully loaded: if (_fileHierarchies != null) { SetStatusLoaded(dlgOpenFile.FileName); // show FileListExporter file save dialog if (ShowSaveFileDialog(fileListExporterFile.FileDirectory, fileListExporterFile.FileNameBody)) { SetStatusSaving(fileListExporterFile.FilePath); fileListExporterFile.SaveFile(_fileHierarchies.GetRootFolders()); SetMessageToMainFormText(fileListExporterFile.FilePath); SetStatusSaved(fileListExporterFile.FilePath); SetStatusFoldersLoading(); EventHandlerManager.PauseAllEventHandlers(); { tvwFoldersManager.SetFileHierarchies(_fileHierarchies); } EventHandlerManager.ResumeAllEventHandlers(); SetStatusFoldersLoaded(); } // if a user gave up to proceed: else { // close the program Dispose(); } } else { // close the program Dispose(); } } // if a FileListExporter file is selected: else if (fileListExporterFile.FileExtention == _fileListExtention) { fileListExporterFile.SetFilePath(dlgOpenFile.FileName); SetStatusLoading(fileListExporterFile.FilePath); _fileHierarchies = fileListExporterFile.LoadFile(); // if the file hierarchies are successfully loaded: if (_fileHierarchies != null) { SetStatusLoaded(fileListExporterFile.FilePath); SetMessageToMainFormText(fileListExporterFile.FilePath); tvwFoldersManager.SetFileHierarchies(_fileHierarchies); } else { // close the program Dispose(); } } else { // close the program MessageBox.Show("Please select a file with these types only: " + dlgOpenFile.Filter); Dispose(); } } // if canceled: else { // close the app Dispose(); } }