/// <summary> /// One of the two recursives /// </summary> /// <param name="tr"></param> /// <returns></returns> private static SerializableTreeNode fnPrepareTreeNode(TreeNodeExtended tr) { SerializableTreeNode strRet = new SerializableTreeNode(); SerializeTreeNode(tr, strRet); strRet.Nodes = fnPrepareChildNode(tr); return(strRet); }
private static List <TreeNodeExtended> RfnPrepareChildNodes(SerializableTreeNode str) { List <TreeNodeExtended> retTreeNode = new List <TreeNodeExtended>(); TreeNodeExtended tnc; foreach (SerializableTreeNode strc in str.Nodes) { tnc = RfnPrepareTreeNode(strc); retTreeNode.Add(tnc); } return(retTreeNode); }
/// <summary> /// This functions returns the treeView for which it has been written /// </summary> /// <returns></returns> public static TreeNodeExtended fnPrepareToRead(SerializableTreeNode sTreeNode) { try { TreeNodeExtended FinalTreeNode = RfnPrepareTreeNode(sTreeNode); return(FinalTreeNode); } catch (Exception ex) { throw new Exception(ex.Message); } }
private static void SerializeTreeNode(TreeNodeExtended source, SerializableTreeNode destination) { destination.Name = source.Name; destination.ToolTipText = source.ToolTipText; destination.ImageIndex = source.ImageIndex; destination.Text = source.Text.ToString(); destination.SelectedImageIndex = source.SelectedImageIndex; destination.MasterListFilesDir.AddRange(source.MasterListFilesDir.ToArray()); destination.FolderType = source.FolderType; destination.IsRootNode = source.IsRootNode; destination.FolderFilterRuleObj = source.FolderFilterRuleObj; destination.Tag = (source.Tag == null) ? null : source.Tag.ToString(); }
private static void UnserializeTreeNode(SerializableTreeNode source, TreeNodeExtended destination) { //destination.IsRootNode = source.IsRootNode; //no need destination.Name = source.Name; destination.Tag = source.Tag; destination.ToolTipText = source.ToolTipText; destination.Text = source.Text; destination.MasterListFilesDir.AddRange(source.MasterListFilesDir.ToArray()); destination.ImageIndex = source.ImageIndex; destination.SelectedImageIndex = source.SelectedImageIndex; destination.FolderType = source.FolderType; destination.FolderFilterRuleObj = source.FolderFilterRuleObj; destination.ResetIconImageIndex(); }
private static TreeNodeExtended RfnPrepareTreeNode(SerializableTreeNode str) { TreeNodeExtended trnRet = new TreeNodeExtended(); UnserializeTreeNode(str, trnRet); #region Building NodeCollection List <TreeNodeExtended> retTempTreeNodeList = RfnPrepareChildNodes(str); foreach (TreeNodeExtended tempTr in retTempTreeNodeList) { trnRet.Nodes.Add(tempTr); } #endregion return(trnRet); }
/// <summary> /// This function prepares an StreeNode Similar to the treeView /// </summary> public static SerializableTreeNode fnPrepareToWrite(TreeNodeExtended treeNodeExtended) { try { TreeNodeExtended treeNodeDestination = (TreeNodeExtended)treeNodeExtended.Clone(); treeNodeDestination.Nodes.Clear(); foreach (TreeNodeExtended treeNodeItr in treeNodeExtended.Nodes) { treeNodeDestination.Nodes.Add((TreeNodeExtended)treeNodeItr.Clone()); } SerializableTreeNode FinalStr = fnPrepareTreeNode(treeNodeDestination); return(FinalStr); } catch (Exception ex) { throw new Exception(ex.Message); } }
public static void SerializeTreeNodeShallowCopy(SerializableTreeNode source, SerializableTreeNode destination) { if (!String.IsNullOrEmpty(source.Name)) { destination.Name = source.Name; } if (!String.IsNullOrEmpty(source.ToolTipText)) { destination.ToolTipText = source.ToolTipText; } destination.ImageIndex = source.ImageIndex; if (!String.IsNullOrEmpty(source.Text)) { destination.Text = source.Text.ToString(); } destination.SelectedImageIndex = source.SelectedImageIndex; destination.MasterListFilesDir.AddRange(source.MasterListFilesDir.ToArray()); destination.FolderType = source.FolderType; destination.IsRootNode = source.IsRootNode; destination.FolderFilterRuleObj = source.FolderFilterRuleObj; destination.Tag = (source.Tag == null) ? null : source.Tag.ToString(); destination.Nodes.AddRange(source.Nodes); }
private void CrawlTreeStructure(SerializableTreeNode serializableTreeNode, String directoryPath) { if (IsStopGenerating()) { return; } //first step. Check the files FileInfo[] filesInfoArr = FileSystemUtilities.GetFiles(directoryPath); if (filesInfoArr != null) { foreach (FileInfo fileInfo in filesInfoArr) { if (ApplyFilterRule(fileInfo, false, out String hitFilterRule)) { UpdateSequenceInfo("Added File", fileInfo.FullName, hitFilterRule); RaiseEventRuleEnforcementStatus(GeneratingSerializeTreeNodeProcessingStage.ENFORCING_RULE_TO_FILE); serializableTreeNode.AddItem(new CustomFileItem(fileInfo.Name, fileInfo)); } Application.DoEvents(); if (IsStopGenerating()) { return; } } } //second step DirectoryInfo[] dirInfoArr = FileSystemUtilities.GetDirectories(directoryPath); if (dirInfoArr != null) { foreach (DirectoryInfo dInfo in dirInfoArr) { Application.DoEvents(); if (ApplyFilterRule(dInfo, true, out String hitFilterRule)) { SerializableTreeNode stree = new SerializableTreeNode { Name = dInfo.Name, ToolTipText = String.Empty, ImageIndex = -1, Text = dInfo.Name, SelectedImageIndex = -1, FolderType = FolderType.TreeView }; //recursive traversal CrawlTreeStructure(stree, dInfo.FullName); bool includeFoldersWithSubFoldersOrFiles = (!FolderFilterRuleObj.IncludeEmptyFolder && stree.MasterListFilesDir.Count > 0); if (FolderFilterRuleObj.IncludeEmptyFolder || includeFoldersWithSubFoldersOrFiles) { serializableTreeNode.AddItem(new CustomFileItem(dInfo.Name, dInfo)); UpdateSequenceInfo("Added Folder", dInfo.FullName, hitFilterRule); RaiseEventRuleEnforcementStatus(GeneratingSerializeTreeNodeProcessingStage.ENFORCING_RULE_TO_FOLDER); serializableTreeNode.Nodes.Add(stree); } } else { CrawlTreeStructure(serializableTreeNode, dInfo.FullName); } } } }